• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

23.12.12 17:20 작성 23.12.12 17:27 수정 조회수 302

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

안녕하세요. 노뚜님!

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

감사합니다.

노뚜님의 프로필

노뚜

질문자

2023.12.12

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