[개인공부] 다형성

Walter Mitty·2022년 11월 22일

개인공부

목록 보기
14/51
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개의 댓글