use*_*362 0 java constructor class abstract
下面是一个简单的例子.我有两个抽象类,A以及B,一个具体的类,C,它包括抽象方法.
当我创建一个新的C,我期望看到的构造函数A和B被调用.知道他们为什么不被召唤?
//Q.java
class Q {
abstract class A {
A() {
System.out.println("in A");
}
public abstract void sayHi();
}
abstract class B extends A {
B() {
super();
System.out.println("in B");
}
}
class C {
C() {
super();
System.out.println("in C");
}
public void sayHi() {
System.out.println("Hi!");
}
}
Q() {
C Ccc = new C();
}
public static void main(String[] args) {
Q z = new Q();
}
}
Run Code Online (Sandbox Code Playgroud)
因为超级c是Object
进一步的类名以大写字母开头 A,B,C,etc
如果你想同时看到a和b调用,请执行以下操作:
class c extends b
Run Code Online (Sandbox Code Playgroud)