반응형
1) 상속의 목적
1. 기존에 선언된 클래스의 필드를 다른 클래스에서 사용하고자 할 때
2. 클래스들을 만들다 보니 공통 요소가 보여서 부모로 묶은 후 상속시켜 주어서
사용하고자 할 때
class A{
A의 필드
}
class B extends A{
B의 필드
}
B b = new B();
b 객체는 실제로는 A의 필드, B의 필드 둘 다 가지고 있다.
A : 부모 클래스, 슈퍼 클래스, Car
B : 자식 클래스, 서브 클래스, SuperCar
2) 자식클래스 객체화
자식 클래스 생성자 호출시 자식 클래스의 객체는 자식 생성자를 호출하여 객체화를 진행한다.
메모리에 자식 클래스의 필드만 올라갔다면 자식 객체로 부모 클래스에 있는 필드에 절대 접근할 수 없다.
따라서 자식 생성자를 호출하게 되면 제일 처음에 부모의 생성자가 자동으로 먼저 호출된다.
그 이후에 자식 클래스의 필드가 따라 붙으면서 객체의 필드가 완성된다.
자식 객체는 부모 필드가 메모리에 먼저 생성되어 있기 때문에 접근할 수 있게 된다.
>> 자식 생성자 첫줄에는 항상 super클래스의 생성자가 호출된다.
명시적으로 적지 않을시에는 보이지 않지만 super() 호출
반응형
'Back-End > JAVA' 카테고리의 다른 글
[Java] 접근 권한 제어자(접근제어자) (0) | 2021.05.27 |
---|---|
[Java] Casting(Upcasting, Downcasting), instanceof (0) | 2021.05.27 |
[Java] Static (0) | 2021.05.24 |
[Java] 클래스 배열 (0) | 2021.05.24 |
[Java] 다형성(Polymorphism) (0) | 2021.05.24 |