Back-End/JAVA

[Java] 상속(inheritance)

챌링킴 2021. 5. 27. 14:19
반응형

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