반응형
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 |