[JAVA] 오버라이딩 실행 순서 알아보기

JoJo·2023년 7월 4일
0
post-custom-banner

💡 연습문제

📌 다음 소스코드의 출력결과를 작성하시오. 단, println 함수를 사용했음을 고려하시오.

[문제풀이]

1. paint() 메소드가 오버라이딩 되어있어 동적바인딩 되어 SubClass의 paint() 메소드가 실행됨
2. void paint 메소드의 super.paint() 가 실행됨
3. 해당 메소드는 부모클래스에서 상속받았기 때문에 SuperClass의 void paint()가 실행됨
4. SuperClass의 void paint() 메소드의 void draw() 가 실행됨 
5. 실행하려는 void draw()가 자식클래스에 오버라이딩되어있어서 동적바인딩에 의해 SubClass의 void draw() 가 실행되어 
Sub Object가 출력됨
6. 자식클래스의 super.draw(); 실행됨
7. 부모클래스에서 상속받고있기 때문에 SuperClass의 void draw()가 실행됨
8. Super Object 출력

1. Sub Object
2. Super Object

가 출력 됨!
profile
꾸준히
post-custom-banner

0개의 댓글