[개인공부] 다형성

Walter Mitty·2022년 11월 22일
0

개인공부

목록 보기
14/40
post-thumbnail

다형성(polymorphism)

  • 여러 가지 형태를 가질 수 있는 능력
  • 조상 타입 참조 변수로 자손 타입 객체를 다루는 것


  • 객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이?
SmartTv s = new SmartTv(); //참조 변수와 인스턴스의 타입이 일치
Tv t = new SmartTv(); //조상 타입 참조변수로 자손 타입 인스턴스 참조
  • 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다.
Tv t = new SmartTv();	//OK. 허용
SmartTv t = new Tv();	//ERROR. 허용 안 됨


생각해 볼 수 있는 질문들

Q. 참조변수의 타입은 인스턴스의 타입과 반드시 일치해야 하나요?
A. 아니용. 일치하는 것이 보통이지만 일치 하지 않을 수도 있습니다.
다형성이 대표적인 예!

Q. 참조변수가 조상타입일 때와 자손타입일 때의 차이?
A. 참조변수로 사용할 수 있는 멤버의 갯수가 달라집니다.

Q. 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 있나요?
A. 아니요. 허용되지 않습니다.

0개의 댓글