/**
- a稱之為基類或父類
*/public classa }
/** - b稱之為衍生類或子類
*/class
bextends
a}
/**
- a基類或父類
*/public
class
a public
void
method2()
public
void
method3()
}/**
- b繼承a
*/class b extends a
}class test
}
public classa }
/** - b繼承a
*/classb }
/** *c同時繼承a,b
*/class
cextends
a,b
public
class
test
}class
father
father(string a)
}class
sonextends
father
son(string b)
}執行結果:
父類的無參建構函式
子類的無參建構函式
父類的無參建構函式
子類的有參建構函式
從上面的例子可以看出,當我們new son()物件時,父類的無參構造器會優先被呼叫執行,然後再執行子類的構造方法,也就是說父類的物件優先初始化。這是因為當我們new son()物件時,編譯器會預設為我們新增一行**super();放在子類構造器的首位置。所以會優先呼叫父類無參構造器,執行完後再呼叫子類無參建構函式。同理,new son(「小明」)時編譯器也會預設為我們新增一行**super();放在子類構造器的首位置,所以有了如上結果。
當然上面的例子只是針對父類有無參建構函式的情況,編譯器可以很容易地呼叫它們,因為不存
在具體傳遞什麼自變數的問題那如果父類沒有無參建構函式呢?(關於建構函式,已寫過一篇進行詳細介紹,這裡不再多講。請參考建構函式)這時就得我們手動呼叫。
public
class
test
}class
father
father(int i)
}class
sonextends
father
son(string a, int i)
}
可以看出父類中沒有無參建構函式,我們只能手動顯示呼叫,而且手動顯示呼叫時super中的型別在父類中必須存在。所以建議,當父類中存在有參建構函式時,我們都手動新增乙個無參建構函式,避免不必要的錯誤和麻煩。 Java基礎之繼承
泛化 從多個類中,抽取相同部分,生成父類的過程。先泛華再繼承。繼承特點 1.多級繼承 將乙個子類作為另乙個類的父類 2.傳遞性 子類可以使用父類的屬性和功能,反之不行 3.乙個類只能繼承乙個類 繼承中的構造方法 例項化子類物件,一定會使用super 先呼叫父類的構造方法,再呼叫子類的構造方法,如果調...
java三大特性之 繼承
1 繼承 子類繼承父類的特性,只支援單繼承,只有乙個父類。這樣是避免多個父類時的衝突。子類繼承了父類的特性,同時擴充套件功能。繼承的出現 提高了 的復用性,讓類與類之間產生了關係。子類父類函式的特點 子類出現和父類一樣的函式時,覆蓋父類的函式。重寫。父類獨有的函式,子類沒出現,子類同樣保留了父類函式...
java 物件導向之繼承extends
繼承官方定義 繼承 英語 inheritance 是物件導向軟體技術當中的乙個概念。如果乙個類別a 繼承自 另乙個類別b,就把這個a稱為 b的子類別 而把b稱為 a的父類別 也可以稱 b是a的超類 繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的 在令子類別繼承父類別的同時,可以...