2012-03-22 3 views
1

난 당신이 JFrame의에서이 작업을 수행 할 수 있습니다 왜 실제 이유가 무엇인지 궁금하네요 :자바 슈퍼 클래스를 호출하고 사용하는 표준 방법

super("My Frame"); 

그리고 같은입니다 :

setTitle("My Frame"); 

나는 그들이 똑같은 일을하고 있다는 것을 이해하지만 실제로 각각에 대해 어떤 일이 벌어지고 있는가? 상속 된 메서드를 단순히 사용하는 대신 수퍼 클래스를 호출하는 이유는 무엇입니까?

답변

2

JFrame에서 그것에 대해 더 배울 수있는 당신이 그것을 따르는 경우 생성자에서 말하는 곳

public JFrame(String title) throws HeadlessException { 
     super(title); 
     frameInit(); 
    } 

, 당신은 결국 java.awt.Frame 클래스에 도달라는 생성자가 :

public Frame(String title) throws HeadlessException { 
     init(title, null); 
    } 

초기화 방법 :

private void init(String title, GraphicsConfiguration gc) { 
    this.title = title; 
    SunToolkit.checkAndSetPolicy(this, false); 
} 

결론은 특정 생성자를 호출하기 때문에 super를 사용하는 것입니다. 주어진 문자열을받지 못하는 다른 JFrame 생성자 중 하나를 사용하는 경우 제안한대로 수동으로 제목을 설정할 수 있습니다.

관련 문제