[Java] 생성자와 super( ) 예제


// 클래스 상속, super( ) 
public class Pg39 {
public static void main(String[] args) {
super_class sc = new super_class();
}
}
class super_super_class{
public super_super_class() {
System.out.println("super_super_class");
}
}
class super_class extends super_super_class{
public super_class() {
super(); //생략가능
}
}

======================== Manual =========================
super <- super_super_class <- super_class 순으로 상속관계가 형성된다. '<-' 표시는 하위에서 상위를 나타냄. 
클래스 상속 시에는 extends 키워드를 이용해야 하며, 다중상속은 불가능하다. 

부모클래스를 상속받은 자식클래스는 객체 생성 시 부모클래스의 객체도 같이 생성하게 된다. 따라서 자식클래스의 생성자는 부모클래스 생성자를 의미하는 super( ) 를 호출해줘야 하나,  super( ) 따로 작성하지 않는 겨우 컴파일러에 의해 추가된다. 단, 부모클래스의 생성자가 디폴트가 아닌 개발자에 의해 만들어진 매개변수가 존재하는 생성자인 경우 super( ) 를 반드시 써줘야 하며, 파라미터 또한 포함시켜야 한다.  
ex) super( parameter ) 

댓글