부모 클래스의 독립성

여전히 Person(부모 클래스) 개체도 만들 수 있음

부모 클래스를 상속받아 자식 클래스를 만들고, 여전히 부모 클래스의 인스턴스를 생성할 수 있음

기본적으로 Person 개체는 Student 개체의 멤버 접근할 수 없음

  • 부모 클래스도 외부 클래스임
  • 접근 제어자로 이를 접근할 수 있게 만들 수 있음

Teacher(자식 클래스)

public class Teacher extends Person {
    private Department department;
 
    public Teacher(String firstName, String lastName, Department department) {
        this.department = department;
        super(firstName, lastName);
    }
 
    public Department getDepartment() {
        return this.department;
    }
 
    public void setDepartment(Department department) {
        this.department = department;
    }
}

이 코드처럼 부모 생성자를 먼저 호출하지 않고, 자식 생성자의 코드를 실행하면 컴파일 오류 발생

상속을 적용한 클래스 다이어그램

public class Teacher extends Person {
    private Department department;
 
    public Teacher(Department department) {
        super("하드코딩값", "하드코딩값");
        this.department = department;
    }
 
    public Department getDepartment() {
        return this.department;
    }
 
    public void setDepartment(Department department) {
        this.department = department;
    }
}

위와 같이 자식 클래스(여기선 Teacher 클래스만 예시로 듬)에서 매개변수로 String을 전달받지 않고, 단순히 하드코딩된 값을 부모 생성자에 넘겨도 문법적 오류는 없음

0건의 항목