인프런 커뮤니티 질문&답변

노뚜님의 프로필 이미지
노뚜

작성한 질문수

김영한의 실전 자바 - 기본편

상속과 메서드 오버라이딩

인스턴스 타입을 부모로해도 자식의 오버라이드 메서드가 호출되나요?

해결된 질문

작성

·

434

·

수정됨

0

안녕하세요!

 

ElectricCar electricCar = new ElectricCar();
electricCar.move();

이렇게 하면 호출한 electricCar의 타입은 ElectiricCar라서 인스턴스 내부의 ElectricCar 타입에서 시작한다고 하셨습니다.

그래서 electricCar.move();를 실행하면 ElectricCarmove() 메서드가 실행돼서

전기차를 빠르게 이동합니다.

이렇게 전기차로 출력이 됩니다.

Car electricCar = new ElectricCar();
electricCar.move();

그럼 이렇게 타입이 Car타입이면
인스턴스 내부의 Car타입에서 move()메서드를 실행시켜 "차를 이동합니다."가 출력될 것이라고 생각했는데

전기차를 빠르게 이동합니다.

여기서도 전기차를 빠르게 이동합니다.가 출력됩니다.


어째서 Car타입에서 move()메서드를 실행하지 않고 ElectricCarmove()메서드를 실행하게 되는건가요?

감사합니다!!😊

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 노뚜님!

조금 뒤에 나오는 다형성을 학습하시면 바로 이해하실 수 있을거에요 🙂

감사합니다.

노뚜님의 프로필 이미지
노뚜
질문자

그렇군요!!ㅜ 감사합니다😁

노뚜님의 프로필 이미지
노뚜

작성한 질문수

질문하기