01. 클래스에서의 타입 변환
02. 다형성
03. instanceof 연산자
04. 오버로딩과 오버라이딩
자바의 두가지 대표적인 타입 변환
1.자료형 변환
2.클래스의 객체 타입 변환
<클래스의 자동타입 변환>
반드시 상속관계에 있는 자식클래스의 객체를 부모타입으로 변환할 때 적용할수 있다.
하지만 , 같은 상위 계층을 가지고 있더라도 두 클래스의 상속 관계가 없다면 타입 변환 불가능함
부모 클래스(타입)객체 변수=new 자식 클래스();
자식 객체를 만들면서 바로 부모타입으로 변환할 때.
부모클래스(타입)객체 변수=자식 객체;
만들어진 자식 객체를 부모타입으로 변환할 때.
<클래스의 강제타입 변환>
자식 객체가 부모 타입으로 자동 타입변환을 한 후, 다시 자식 타입으로 변환하는 것
개발자가 직접 명시해야만 할 수 있음
단, 모든 부모 타입 객체를 자식 타입으로 변환할 수 있는 것은 아니다.
반드시 부모 타입으로 자동타입 변환되었던 자식객체를 다시 자식 타입으로 변환할 떄만 강제 타입 변환을 사용할 수 있다.
((자식타입) 부모타입).메서드();
일회성으로 타입변환일 필요할 때
자식 타입변수=(자식 타입)부모타입;
자식 클래스의 멤버들에 대한 접근이 여러번 필요할 때
<다형성>
하나의 타입으로 다양한 객체를 사용할 수 있느 것
객체가 특정 클래스의 필드가 되면서 하나의 부품처럼 사용될 수 있다.
<instanceof 연산자>
부모 타입으로 타입이 변환되어 저장된 변수는 안에 어떤 객체가 담겨 있는지 직접 확인하지 않는 이상, 내부객체를 알기가 쉽지 않아 , 자바는 인스턴스오브 연산자를 제공해 인스턴스의 실제 타입을 확인할 수 있게 해준다.
-instanceof 기준으로 왼쪽 객체가 생성될 때 오른쪽 타입으로 생성됐는지 확인하는 연산자
-맞은면 t, 아니면 f를 반환해 만약 null를 가지고 있으면 false를 반환한다.
※ instanceof 연산자와 ==연산자의 차이
-A instanceof B : 객체변수 A가 객체타입 B로 생성된 것인지 확인
-C==D : 객체변수 C와 D가 같은 객체를 참조하고 있는지 확인
<오버로딩과 오버라이딩>
-오버로딩 : 하나의 클래스 안에서 같은 이름의 메서드를 여러 개 구현하고 필요에 따라 메서드를 선택해 사용할 수 있음
-오버라이딩 : 부모클래스에서 상속받은 메서드를 재정의해 자식 클래스용 메서드를 구현하고 자식 객체를 통해 메서드를 호출.
'JAVA > 교재' 카테고리의 다른 글
JAVA 01- 자바 프로그래밍의 기본 (0) | 2025.01.19 |
---|---|
JAVA 12- 추상 클래스와 인터페이스 (0) | 2025.01.18 |
JAVA 10- 상속 (0) | 2025.01.17 |
JAVA 09- 생성자 (0) | 2025.01.15 |
JAVA 08- 메서드 (0) | 2025.01.14 |