다형성(多形性, polymorphism)
- 여러 가지 형태를 가질 수 있는 능력
- 조상 타입 참조 변수로 자손 타입 객체를 다루는 것
객체(≒인스턴스) 타입과 참조 변수 타입이 일치할 때와 일치하지 않은 경우?
// 일반적인 케이스, 객체 타입(≒ 인스턴스 타입)과 참조 변수 타입 일치
// 자손 타입(SmartTv) 참조 변수(s)와 객체 타입(SmartTv) 일치
SmartTv s = new SmartTv();
// 하지만 타입이 불일치해도 됨, 객체 타입(≒ 인스턴스 타입)과 참조 변수 타입 불일치
// 조상 타입(Tv) 참조 변수(t)와 자손 타입(SmartTv) 불일치
Tv t = new SmartTv();
// 타입이 불일치하면 안되는 케이스
// Error, 자손 타입(SmartTv) 참조 변수(s)로 조상 타입(Tv)의 객체를 가리킬 수 없음
SmartTv s = new Tv();
📝 참조 변수 타입은 인스턴스 타입과 일치하는 것이 보통이지만 일치 하지 않을 수도 있음
📝 참조 변수가 조상 타입일 때와 자손 타입일 때 차이는 참조변수로 사용할 수 있는 멤버의 개수가 달라진다는 것
📝 자손 타입의 참조 변수로 조상 타입의 객체를 가리키는 것은 불가!!!
'Java' 카테고리의 다른 글
Java 매개변수의 다형성 (0) | 2022.12.27 |
---|---|
Java 참조변수의 형변환과 instanceof (0) | 2022.12.27 |
Java 제어자(modifier) (0) | 2022.12.26 |
Java import문 (0) | 2022.12.26 |
Java 패키지(package) (0) | 2022.12.26 |