개인 공부 (23.07~
[JAVA] 다형성, 동적 바인딩 예시
Song쏭
2023. 10. 8. 17:13


- 다형성이란 특징이 있기에
부모타입의 변수에 자식객체를 선언할 수 있다.
- draw() 메서드 내에서 draw()를 호출할 때
Java는 어떤 메서드를 호출해야할 지 결정하는 과정에서
현재 객체의 타입을 기반으로 메서드를 결정한다.
이것은 컴파일 시간이 아닌 런타임에서 발생하고, 동적 바인딩이라고 한다.
Parent c = new Child();
변수 c는 Parent 타입의 참조 변수이지만
실제로는 Child 객체를 참조하고 있다.
c.paint();를 호출할 때,
Child 클래스의 paint()가 실행된다.
이 메서드 내 super.draw()가 호출되면, Parent클래스의 draw()가 호출된다.
Child 클래스의 paint() 내에서 draw()를 호출할 때,
Java는 c가 현재 참조하고 있는 객체의 타입인 Child의 draw()를 호출한다.
c.draw()를 호출하면, Child클래스의 draw()가 호출된다.