본문 바로가기
Java/Java

[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_3

by HJ0216 2023. 5. 9.

이 글은 남궁성의 정석코딩 [자바의정석-기초편] 수강하며 정리한 글입니다.

 

 

🟣 기본 환경: 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) 등 모두 가능

 

 

 

 

소스 코드

🔗 HJ0216/java-practice

 

참고 자료

📑 [자바-객체지향2] 캡슐화

📑 [자바의 정석] ch7-22 캡슐화