이 글은 남궁성의 정석코딩 [자바의정석-기초편]을 수강하며 정리한 글입니다.
🟣 기본 환경: IDE: Eclipse, Language: Java
다형성(polymorphism): 조상 타입 참조 변수로 자손 타입 객체를 다루는 것
* 참조변수 타입(t)은 인스턴스 타입(SmartTv)과 반드시 일치해야 하는 것은 아님
Tv t = new Tv();
SmartTv s = new SmartTv();
->
Tv(조상) t = new SmartTv(자손)();
스마트 tv 7개의 기능을 tv리모콘으로 5개만 쓸 수 있음
* 자손타입의 참조변수로 조상타입의 객체를 가리킬 수 없다.
SmartTv s = new Tv(); // Error
기본형의 형변환: 값이 변환
double 3.6 → int 3
참조형의 형변환: 사용할 수 있는 멤버의 갯수 조절
조상, 자손 관계의 참조변수는 서로 형변환 가능
(자손->조상: 자동 형변환 가능=형변환 생략 가능, 조상->자손: 형변환 생략 불가)
형제 관계의 참조변수는 서로 형변환 불가
instanceof
참조변수의 형변환 가능여부 확인 사용, 가능하면 true 반환
* 반드시 형변환 전 instanceof로 확인
매개변수의 다형성
: 메서드의 매개변수로 조상 클래스의 참조변수를 통해 하나의 메서드로 여러 타입의 객체를 받을 수 있는 것
buy(Product p) -> buy(Tv t), buy(Audio a) 등 모두 가능
소스 코드
참고 자료
'Java > Java' 카테고리의 다른 글
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_5 (0) | 2023.05.11 |
---|---|
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_4 (0) | 2023.05.10 |
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_2 (0) | 2023.05.07 |
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_1 (0) | 2023.04.10 |
[자바의 정석_기초편] Chapter06. 객체지향 언어(Object Oriented Language)_3 (0) | 2023.04.09 |