Step it up now

상속 super( ); 본문

개인공부/java

상속 super( );

케잉 2024. 7. 8. 19:57
public class ClassA {

    public ClassA(){ //기본 생성자
        System.out.println("ClassA 생성자");
    }
}

 

 

public class ClassB extends ClassA {

    public ClassB(int a) {
       // super(); //부모클래스가 기본 생성자일 경우 생략 가능
        // 매개변수가 없는 부모 클래스의 생성자 호출은 자식 클래스의 생성자에서 생략할 수 있으며,
        // 이 경우 컴파일러가 자동으로 super()를 삽입
        //cf. 상속받은 경우 생성자 첫줄에 부모 클래스의 생성자 호출해야함
        System.out.println("ClassB 생성자 a = " + a);
    }

    public ClassB(int a, int b){
        super(); //기본 생성자 생략 가능
        System.out.println("ClassB 생성자 a = " + a + "  b = " + b);
    }
}

 

 

public class ClassC  extends ClassB {

    public ClassC(){
        super(10,20); //B에서 생성자를 2개 정의했기에 기본생성자가 없으니 자식C에서 직접 정한다
        System.out.println("ClassC 생성자");
    }
}

 

 

public class Super2Main {

    public static void main(String[] args) {
        ClassC classC = new ClassC();
    }
}

 

 

 

super()를 통해 부모클래스 호출 

최상위 부모클래스부터 출력

 

'개인공부 > java' 카테고리의 다른 글

Static 문제 풀이  (0) 2024.08.20
다운캐스팅  (0) 2024.07.11
상속시 인스턴스 생성  (1) 2024.07.08
stack 구조  (0) 2024.06.25
package  (1) 2024.06.05