Super

SeungJoo
|2023. 10. 21. 21:25
728x90

super

super는 상속 관계에서 부모 클래스의 멤버를 참조할 때 사용하는 키워드입니다. 단일 상속만 지원하는 자바에서 Super는 바로 상위 클래스의 인스턴스를 지정하는 키워드 입니다.

super()

super()는 자식 클래스의 생성자에서 부모 클래스의 생성자를 호출하기 위해 사용됩니다.

super() 는 생성자 코드 안에서 사용될 때, 다른 코드에 앞서 첫 줄에 사용되어야 합니다.

자식 클래스의 생성자에서 명시적으로 super(매개변수)와 같이 특정 부모 클래스의 생성자를 호출할 수 있습니다.

자바 클래스 간에서 상속 관계에 있을 때, 자식 클래스는 부모 클래스의 특성과 메서드를 상속받고 자식 클래스에서 부모 클래스의 멤버와 동일한 이름을 가진 멤버를 정의할 수 있습니다.

class HamBurger {
    public String name;

    public HamBurger() {
        this("햄버거");
    }
    public HamBurger(String name) {
        this.name=name;
    }
    public void cook() {
        System.out.println(this.name + "을 만듭니다."); // 헴버거를 만듭니다.
        System.out.println("빠 사이에 들어가는 재료는?");
        System.out.println("> 양상추");
        System.out.println("+ 패티");
        System.out.println("+ 피클");
    }
}

생성자에서 super는 자식 클래스의 생성자에서 super()를 호출하면 부모 클래스의 기본 생성자를 호출합니다. CheesBurger 클래스에서 super("치즈 버거"); 와 같이 호출하면, 부모 클래스인 HamBurger의 매개변수가 있는 생성자를 호출하면서 치즈 버거라는 문자열을 전달하게 됩니다.

class CheeseBurger extends HamBurger {
    public CheeseBurger() {
        super("치즈 버거");
    }
   public void cook() {
        super.cook();
       System.out.println("+ 치즈");
   }
}
728x90

'JAVA' 카테고리의 다른 글

Generics  (1) 2023.10.22
인터페이스와 추상 클래스  (1) 2023.10.20
다형성  (0) 2023.10.18