프로그램을 작성할 때 예기치 않은 결과가 발생합니다. 나는 3 개의 클래스를 가지고 있고 그것들은 모두 적절하게 컴파일되지만, 내가 runt 할 때 콘솔에 적절한 출력을 쓰는 것 같지 않습니다. 나는 ClassTest 클래스 생성자에 super()
를 사용주된 수업이 너무 많습니까?
AbsClass called
Extender called
ClassTest called
, 그러나 그것은 단지 부모를 호출해야합니다 :
Extender called
ClassTest called
그러나,이 쓰고 : 내 주요 방법을 바탕으로, 나는 결과를 보여주는를 얻어야한다 클래스 맞지?
public abstract class AbsClass {
public AbsClass() {
System.out.println("AbsClass called");
}
}
여기에 두 번째 클래스의 :
가 여기에 첫 번째 클래스의
public class Extender extends AbsClass {
public Extender() {
System.out.println("Extender called");
}
}
다음은 주요 방법 마지막 클래스의 :
public class ClassTest extends Extender {
public ClassTest() {
super();
System.out.println("ClassTest called");
}
public static void main(String[] args){
ClassTest test = null;
test=new ClassTest();
}
}
_ "생성자가 명시 적으로 수퍼 클래스 생성자를 호출하지 않으면 Java 컴파일러는 수퍼 클래스의 인수없는 생성자에 대한 호출을 자동으로 삽입합니다."_ http://docs.oracle.com/javase/tutorial/java /IandI/super.html –
기대되는 결과를 얻고 있습니다 .... 무엇이 잘못 되었나요? Java 컴파일 및 실행 방법을 알고 있습니까? –
@Suzon 나는 컴파일하고 실행하는 방법을 알고 있지만, 내가 쓴 후자의 결과를 얻고있다. – liberation