오버라이딩된 메서드는 객체의 실제 타입에 따라 자식 클래스의 메서드가 호출되고,
변수는 참조 변수의 타입에 따라 부모 클래스의 변수를 참조한다.
즉 오버라이딩 된 메서드는 항상 우선권을 가진다.
[변수와 메서드 접근 차이]
변수 | 메서드 |
|
|
"오버라이딩된 메서드가 항상 우선권"을 가지는 이유는 자바의 다형성(polymorphism) 때문이다.
즉, 부모 타입의 변수로 자식 객체를 참조하더라도,
실제 객체의 타입에 따라 자식 클래스의 오버라이딩된 메서드가 호출된다.
[예시 코드]
class Parent {
String name = "Parent";
void show() {
System.out.println("Parent method");
}
}
class Child extends Parent {
String name = "Child";
@Override
void show() {
System.out.println("Child method");
}
}
public class Test {
public static void main(String[] args) {
Parent obj = new Child();
System.out.println(obj.name); // 출력: Parent
obj.show(); // 출력: Child method
}
}
※ 변수 자체는 부모를 참조하나, 메서드는 자식을 참조하는 것을 볼 수 있음
변수 접근 | 메서드 접근 |
|
|
▶ 상속과 다형성 이해 예시
https://zoooom-in.tistory.com/111
[국비][JAVA] 상속과 다형성 이해 예시
▶ 다형성 사용 이유 및 순수 추상클래스https://zoooom-in.tistory.com/62 [김영한_자바기본][11. 다형성2] 다형성 사용 이유 및, 순수 추상 클래스(p.1-20)1. 다형적 참조 / 메서드 오버라이딩을 통해 각자
zoooom-in.tistory.com
▶ 상속과 메모리 구조
https://zoooom-in.tistory.com/61
[김영한_자바기본][10. 다형성1] 상속과 메모리 구조(p.1-23)
1. 자식 객체를 부모 참조 변수에 할당하면 부모 메서드에 접근이 가능하다. 2. 다운캐스팅은 '일시적으로' 부모 타입의 참조 변수를 자식 타입으로 형변환하는 것이다. 3. 다운 캐스팅 수행 전 ins
zoooom-in.tistory.com
▶ 다형성과 설계, 예제를 통한 이해
https://zoooom-in.tistory.com/71
[김영한_자바기본][12. 다형성과 설계] (보충) 예제를 통한 이해 (p.13-
▶ 다형성 사용 전, 후 : 예제를 통한 이해 https://zoooom-in.tistory.com/63 [김영한_자바기본][12. 다형성과 설계] 다형성 사용 전, 후 예제를 통한 이해 (p.1-20) OCP(Open-Closed principle) 원칙 = 전략 패턴 - Open f
zoooom-in.tistory.com
'용어 > java' 카테고리의 다른 글
[국비][JAVA] 지네릭스(제네릭) 예시를 통해 이해하기 (0) | 2024.06.08 |
---|---|
[국비][JAVA] list 이해하기 (2) | 2024.06.08 |
[국비][JAVA] 컬렉션 프레임웍의 큰 틀 이해하기 (2) | 2024.06.08 |
[국비][JAVA] Split과 StringTokenizer 비교 (0) | 2024.06.08 |
[국비][JAVA] 오토박싱과 언박싱 (0) | 2024.06.04 |