상속과 메모리 구조


<aside> 🛳️

설명


동작 1. 객체 생성

ElectricCar electriccar = new ElectricCar();

image.png

동작 2. 보인 타입 호출

ElectriCar.charge();

image.png

동작 3. 상속된 extends Car의 move() 기능 호출

electricCar.move();

image.png

  1. 먼저 x001 참조로 이동
  2. 내부에는 Car와 ElectricCar 두가지 타입 존재
  3. 이때 호출한 변수인 electricCar의 타입인 ElectricCar 타입 먼저 선택
  4. 이후 해당 호출한 move() 함수가 없는 것을 확인
  5. 그럼 부모인 Car로 올라가 move() 찾음
  6. 만약 부모 타입에서도 기능이 없으면 컴파일 오류 </aside>