第七章 復用類

2021-07-10 01:34:18 字數 1142 閱讀 2633

class cleaner

public cleaner() //

private string s="cleaner";

s+=a;

} public void dilute()

} public void scrub()

public string tostring()

public static void main(string args)

}public class testextends extends cleaner

public testextends(int i)

public void scrub()

public void foam()

public static void main(string args)

}

列印結果是:

bbbbbbbbbbb

ccccccccccccccccccc

aaaaaa

aaaaaaaaa

這個類基本可以說明了繼承。

class cleaner

public cleaner() //

}public class testextends extends cleaner

public testextends(int i)

public static void main(string args)

}

列印為:

ddddddd

aaaaa

ccccccc

bbbbbb

關於繼承的初始化,父類子類都是無引數的構造方法的時候,新建子類例項的時候先呼叫父類的預設無參構造方法,再呼叫子類的無參構造方法;要是父類有了需要傳入引數的構造方法,子類有無引數的構造方法,當使用子類無引數的構造方法建立例項的時候,父類必須要宣告無參的構造方法(如上**//那幾行沒錯的話testextends x=new 

testextends()這句將報錯)。

到底是該用組合還是繼承,乙個最清晰的判斷辦法就是問一問自己是否需要從新類向基類進行向上轉型。如果必須向上轉型,則繼承是必要的;但如果不需要,則應該好好考慮自己是否需要繼承。

第七章 復用類

1 子類可以使用父類public protected的方法和成員。子類可以過載父類的方法,但是方法名和引數列表相同,當返回型別不同的方法在子類中會出現編譯期錯誤。由8.4節中允許 犯規協變返回型別,即子型別。2 基類中private可視為基類的結構,對外無任何影響,所以在子類中出現乙個方法名和引數列...

第七章 復用類

有乙個類a,aa繼承a,類繼承圖將父類放在最頂部,子類放在下方,a a new aa 此處aa自動向上轉成了a型別。根據類繼承圖可以進行理解向上的這個關係。修飾類 表示該類不能被繼承 修飾方法 表示方法不能被重寫 修飾變數 表示變數只能一次賦值以後值不能被修改 常量 final和static fin...

Thinking in Java 第七章 復用類

1 組合 在新有類中產生現有類的物件,復用了現有程式 的功能。2 繼承 按照現有類的形式來建立新類。3 4 域物件初始化位置 4.1在定義物件的地方,比構造器更早 4.2在類的構造器中 4.3在正要使用這些物件之前 5 當建立乙個匯出類的物件時,該物件包含了乙個基類的子物件。建構函式的呼叫是從基類 ...