Java : Constructor(생성자) 2

2023. 3. 20. 15:34java


// 상속 관계에서의 생성자(Constructor)
//  - 상속 관계의 모든 클래스의 생성자는 실행
//      - 서브 클래스, 슈퍼 클래스의 생성자가 실행
//  - 상속 관계에서의 생성자 호출
//      - 서브 클래스부터 호출이 되어지며
//        서브 클래스의 생성자가 슈퍼 클래스의 생성자를 바로 호출
//  - 상속 관계에서의 생성자 실행
//      - 슈퍼 클래스의 생성자가 실행하며 초기화가 끝난 다음
//        서브 클래스의 생성자가 실행된다.

//  - 서브 클래스의 생성자는 기본적으로
//    슈퍼 클래스의 기본 생성자를 호출한다.
//      → 만약 기본 생성자가 없으면 오류가 발생

//  - 기본적인 원칙
//      필드가 선언된 클래스에서 설정/반환!
//      초기화 역시 선언된 클래스에서 하자!
//  → 슈퍼클래스의 멤버는 슈퍼 클래스의 생성자를 통해 진행
//  → super() 생성자를 통해 슈퍼 클래스의 생성자를 호출
//     → super() 생성자를 작성하지 않으면 컴파일러가
//       맨 첫 줄에 추가시킨다.
//     → super() 생성자도 반드시 첫 줄에 작성되어야하기 때문에
//       this() 생성자와 같이 작성될 수 없다.

// super 레퍼런스
//  - 자신의 인스턴스 영역 중 슈퍼 클래스의 영역을 참조
//  - 멤버의 이름이 같은 경우 서브 클래스의 멤버가
//    우선 순위가 높기 때문에 슈퍼 클래스의 멤버에 접근할 수 없다.
//  - 이때, 슈퍼 클래스의 멤버에 접근하기 위한 레퍼런스
 
public class File04_Constructor {
    public static void main(String[] args) {
        NamedPosition np1 = new NamedPosition("P1", 10, 20);
       
        System.out.println(np1);
       
    }
}













'java' 카테고리의 다른 글

Java : Method OverLoading, OverRiding(매서드 오버로딩, 오버라이딩)  (0) 2023.03.20
Java : Casting(캐스팅)  (0) 2023.03.20
Java : Inheritance(상속)  (0) 2023.03.20
Java : Final  (0) 2023.03.20
Java : Static  (0) 2023.03.20