我知道抽象類和具體類之間的幾個區別。我知道你不能創建一個抽象類與具體類不同的抽象類,抽象類可以有'抽象'方法。java - 抽象類和具體類之間的獨特區別
但我有一個像下面這樣的例子。很多時候,我們在工作中看到以下例子。我將跳過一些可以在Parent類中定義的常用方法。
public abstract class Parent {
public void init() {
doInit();
}
public abstract void doInit();
}
public class Child extends Parent {
public void doInit() {
// implementation
}
}
我認爲我們可以用像下面這樣的具體類來做同樣的事情。
public class Parent {
public void init() {
doInit();
}
public void doInit() {
// Empty
}
}
我很好奇,看看是否有任何獨特的情況,我們必須使用抽象類。上面的例子在運行時有什麼顯着差異嗎?
謝謝。
您的第二個'Parent'類仍然是一個抽象類,因爲它有一個抽象方法。這不是一個具體的類,因爲你不能創建它的一個實例。 – 2012-07-27 03:04:25
在第二個例子中,doInit是不是「抽象」的意思?事實上,這不會被編譯。 – 2012-07-27 03:05:26
記得在第二個例子中刪除'doInit()'上的大括號。 – LastStar007 2012-07-27 03:13:05