

- 다형성이란 특징이 있기에
부모타입의 변수에 자식객체를 선언할 수 있다.
- 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()가 호출된다.
'개인 공부 (23.07~' 카테고리의 다른 글
스프링 빈 등록, DI, IoC 궁금증 해결 (1) | 2023.10.16 |
---|---|
인증, 인가, JWT (Json Web Token) (0) | 2023.10.14 |
필터, 인터셉터, AOP 개념, 사용법 (0) | 2023.09.24 |
[Spring] @RequiredArgsConstructor, @NoArgsConstructor, @AllArgsConstructor + @Data 어노테이션 정확히 알기 (0) | 2023.09.10 |
[JPA] dirty checking 더티체킹 간단 이해 (0) | 2023.09.09 |