注意:
1.子類自動擁有父類宣告為
public
和protected
的成員。
2.通過
super
呼叫基類構造方法,必須是子類構造方法中的第乙個語句。
3.子類的構造方法在執行之前,必須呼叫父類的構造方法
4.以final
宣告的方法不允許覆蓋,以
final
宣告的變數不允許更改,利用
final
,我們可以設計出一種特殊的「唯讀」 的「不可變類」。
示例**:
class grandparent
public grandparent()
system.out.println("grandparent created.");
public grandparent(string string)
system.out.println("grandparent created.string:" + string);
class parent extends grandparent
public parent()
super("hello.grandparent.");
system.out.println("parent created");
//super("hello.grandparent.");
class child extends parent
public child()
system.out.println("child created");
public class testinherits
public static void main(string args)
child c = new child();
該**執行的結果是:
附:為什麼子類的構造方法在執行之前,必須呼叫父類的構造方法?能不能反過來?為什麼不能反過來?
答:建構函式是在建立給定型別的物件時執行的類方法。建構函式具有與類相同的名稱,它通常初始化新物件的資料成員。建構函式用於建立類的例項,並對例項進行初始化操作,通過不同的引數傳遞,可進行不同的例項初始化操作。
子類可以理解為在父類下面的乙個更細的劃分,所以必須先呼叫父類的構造方法,如果要給乙個物件分類,如果它的型別是子類的話,它一定也屬於父類。
神奇**:
public class explorationjdksource
執行結果:
原因分析: 前面示例中,main
方法實際上呼叫的是:
public void println(object x),這一方法內部呼叫了
string
類的valueof
方法。valueof方法內部又呼叫
object.tostring
方法:public string tostring() {
return getclass().getname() +"@" +
integer.tohexstring(hashcode());
hashcode方法是本地方法,由
jvm設計者實現:
public native int hashcode();
反編譯結果:
繼承與派生, 繼承的應用
一,什麼是繼承?繼承是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類。繼承的特性是 子類會遺傳父類的屬性。強調 繼承是類與類之間的關係 二,為什麼用繼承?繼承的好處就是可以減少 的冗餘 3 如何用繼承 在python中支援乙個類同時繼承多個父類 在python3中 如果乙個類沒有繼承任何類,...
JS繼承 原型的應用
前面我們知道js是基於物件程式設計的一種指令碼語言,在js本著一切皆物件的原則,物件之間也涉及到了繼承,不過這裡的繼承與我們以往學習過的繼承有所不同,它運用的是物件的原型,來構造乙個原型鏈來實現對超類物件的繼承。1 如何實現物件繼承 function box desk.prototype new b...
Java s 繼承應用例項
1 根據需求,完成如下 只用繼承,不用抽象類,按照標準格式寫 並在測試類中進行測試。需求一 專案經理類 屬性 姓名 工號 工資 獎金 行為 工作work 列印姓名 工號 工資 獎金 程式設計師類 屬性 姓名 工號 工資 行為 工作work 列印姓名 工號 工資 需求二 已知學生類和老師類如下 屬性 ...