class Tv {
// 5개 멤버
}
class SmartTv extends Tv {
// 7개 멤버
}
// 근본 (타입 일치)
Tv t = new Tv();
SmartTv s = new SmartTv();
// 다형성 (조상 타입의 참조 변수로, 자손 타입의 객체를 다룬다)
Tv t = new SmartTv(); // 타입 불일치 > 장점이 뭘까?
다형성이 객체지향에 굉장한 유연함을 준다!
객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이는?
SmartTv s = new SmartTv(); // 멤버 전부 사용 (7개)
Tv t = new SmartTv(); // 멤버를 일부만 사용 (5개)
자손 타입의 참조변수로는 조상 타입의 객체를 가리킬 수 없다.
Tv t = new SmartTv(); // OK 허용
SmartTv s = new Tv(); // ERROR 허용 안됨