<상속>
- 상속은 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미.
- 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성가능.
- 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 라고 함.
<상속을 사용하는 이유>
1. 기존에 작성된 클래스 재사용 가능
2. 자식 클래스에서 중복되는 멤버를 작성하지 않아도 됨.
3. 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련함.
<자식클래스>
부모 클래스의 모든 특성을 물려받아 새롭게 작성된 클래스
-> 부모 클래스에 새로운 필드를 하나 추가하면, 자식 클래스에도 자동으로 해당 필드가 추가된 것처럼 동작함.
- 자식 클래스에는 부모 클래스의 필드와 메소드만이 상속되며, 생성자와 초기화 블록은 상속되지 않습니다.
-> 부모 클래스의 접근 제어가 private이나 default로 설정된 멤버는 자식 클래스에서 상속받지만 접근할 수는 없습니다.
class Parent {
private int a = 10; // private 필드
public int b = 20; // public 필드
}
class Child extends Parent {
public int c = 30; // public 필드
void display() {
① // System.out.println(a); // 상속받은 private 필드 참조
② System.out.println(b); // 상속받은 public 필드 참조
③ System.out.println(c); // 자식 클래스에서 선언한 public 필드 참조
}
}
public class Inheritance01 {
public static void main(String[] args) {
Child ch = new Child();
ch.display();
}
}