2012-03-24 2 views
1

이것은 Java에 관한 매우 기본적인 질문입니다. 어딘가에서 서브 클래스의 생성자에서 처음에는 수퍼 클래스의 생성자가 암시 적으로 호출된다는 것을 읽었습니다. 그러나 나는 그 문서에 대한 참조를 찾을 수 없었습니다. 누군가이 참조를 제공해 주시겠습니까? - 그들이 시작하는 다형이라고하지 않을상속 된 클래스에서 생성자 호출

class SuperClass { 
    static String s = ""; 
    protected SuperClass() { s += "super "; } 
} 

public class SubClass extends SuperClass { 
    private SubClass() { s += "sub"; } 
    public static void main(String[] args) { 
     new SubClass(); 
     System.out.println(s); 
    } 
} 

답변

7

는 자바 생성자의를 오버라이드 (override) 더 없습니다 : 여기

내가 super sub 문자열을 출력하는, 무슨 말인지의 예입니다.

가 있지만, 각 생성자 암시 생성자 본문의 첫 번째 줄 super(...) 명시 적 또는 ((a 매개 변수가 한 전화), 상위 클래스의 생성자를 호출한다 - 동일한 클래스 내의 다른 생성자 또는 체인 생성자 본문의 첫 번째 줄과 같은 this(...)로. 체인 연결된 생성자는 생성자 본문의 나머지 전에 실행됩니다.

자세한 내용은 section 8.8.7 of the Java Language Specification를 참조하십시오.

+0

당신은 내가에 문구를 마우스 오른쪽 버튼으로 변경 한 때 " 하위 클래스의 생성자 "를 읽으십시오. 링크를 가져 주셔서 감사합니다. –