1. 程式人生 > >5、繼承(extends)

5、繼承(extends)

重寫 抽取 出現 調用 必須 不同 設置 extends bstr

繼承主要目的是提高代碼的復用性,但是只有在類與類之間有所屬關系的時候才能繼承,不能為了獲取其他類的功能而繼承,Java中只有單繼承,不支持多繼承,但可以多層繼承

當父類中定義了相同的功能,內容不同時,子類對象不確定調用哪一個,容易帶來安全隱患,所以不支持多繼承。

一、方法的重寫

1、當子類和父類有一樣的方法時,對象會調用子類的方法,稱為方法的重寫

2、重寫父類方法時,方法必須一致,包括參數和返回值類型

3、只有子類的權限大於或等於父類時,才能對父類方法重寫

二、繼承中的構造方法

1、繼承後,子類可以直接調用父類的方法,所以子類對象建立時需要對父類的數據進行初始化

2、子類的構造函數中會默認調用父類中空參數的構造函數即 super(),當父類中沒有空參數的構造函數時,需要手動設置super()用來初始化父類數據

3、this()或super()只能放在構造函數的第一行,所以子類至少有一個構造函數訪問父類

三、抽象(abstract)

1、當多個類出現相同功能時,功能主題不同,這時可以向上抽取,只抽取定義,不抽取主題。

2、類與方法必須由關鍵字abstract修飾

3、抽象方法一定要放在抽象類中,但抽象類可以不定義抽象方法(不讓建立對象)

4、抽象類不可以建立對象,抽象的方法沒有意義

5、抽象類方法要使用需要子類,需用子類復寫父類所有抽象方法,建立子類對象使用,如果只復寫了部分抽象方法,則還是抽象類。

5、繼承(extends)