下面是一個簡單的例子。我有兩個抽象類,A
和B
,一個具體類,C
,其中包括抽象方法。java抽象類,構造函數未在超類中調用,爲什麼?
當我創建一個新的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();
}
}
c類不延伸b或a ... 你應該寫'class c extends b {...' – ppeterka
c不繼承a或b。所以你還沒有真的重寫方法 – mcalex
以及C不擴展B或 –