상속이란? 기존에 있던 클래스를 부모클래스(상위 클래스)로 정의하여 새로운 클래스(하위 클래스)에서 활용하는 것
⭐ 상속을 사용하는 이유
- 기존에 선언된 클래스의 필드를 다른 클래스에서도 사용하고자 할 때
- 클래스들을 만들다 보니 공통 요소가 보여서 묶은 후 상속시켜 주어서 클래스들을 편하게 만들고자 할 때
상속 방법
class A{
A의 필드(변수, 메소드)
}
class B extends A{
B의 필드
}
B obj = new B();
⭐ obj 객체는 실제로 A의 필드와 B의 필드 둘 다 가지고 있다.
A : 부모 클래스 (상위 클래스, 슈퍼 클래스, 기반 클래스)
B : 자식 클래스 (하위 클래스, 서브 클래스, 파생 클래스)
자식 클래스 생성자 호출 시 일어나는 일
자식 클래스의 객체는 자식 생성자를 호출해서 객체화를 진행한다.
자식 생성자를 호출했으므로 자식 클래스 내의 필드들이 똑같이 복사되어 하나 생성된다.
만약 자식 클래스의 필드만 메모리에 올라갔다면 그 객체로 절대 부모 클래스 내부에 있는 필드들은 사용할 수 없다.
따라서 자식 생성자를 호출하게 되면 상속 받기로 한 부모의 필드가 먼저 메모리에 할당되고 그 이후에 자식 필드도 따라 붙는다.
결과적으로 그 객체는 부모 필드가 메모리에 같이 올라와 있기 때문에 부모 클래스의 필드에도 접근할 수 있게된다.
'Backend > Java' 카테고리의 다른 글
[Java] 기초정리 16. 접근 제어자 - public, private, protected (0) | 2024.09.01 |
---|---|
[Java] 기초정리 15. 업캐스팅, 다운캐스팅, instanceof (0) | 2024.08.31 |
[Java] 기초정리 13. 클래스 배열(객체 배열) - 클래스 배열 선언, 사용 (0) | 2024.08.20 |
[Java] 기초정리 12. 다형성(Polymorphism) - 오버로딩, 오버라이딩 (0) | 2024.08.10 |
[Java] 기초정리 13. 생성자 - 생성자 선언, this (0) | 2024.08.09 |