1. 程式人生 > 其它 >第二十四節 面向物件 繼承 另一個視訊的筆記

第二十四節 面向物件 繼承 另一個視訊的筆記

繼承

繼承的本質某一批類的抽象,從而實現對現實世界更好的建模。

extends的意思是“擴充套件”。子類是父類的擴充套件。

Java中類只有單繼承,沒有多繼承。

繼承是類和類之間的一種關係。除此之外,類和類之間的關係還有依賴、組合、聚合等。
繼承關係的兩個類,一個為子類(派生類),一個為父類(基類)。子類繼承父類,使用關鍵字extends來表示。
子類和父類之間,從意義上講應該具有“is a”的關係。

object類
super
方法重寫

另一個視訊的筆記

繼承的概述

面向物件的三大特徵:封裝性、繼承性、多型性。
繼承是多型的前提,如果沒有繼承,就沒有多型。
繼承主要解決的問題就是:共性抽取
繼承關係當中的特點:

  1. 子類可以擁有父類的“內容”
  2. 子類還可以擁有自己專有的內容。

繼承的格式


繼承中成員變數的訪問特點

區分子類方法中重名的三種變數

繼承中成員方法的訪問特點

繼承中方法的覆蓋重寫-概念與特點

重寫(Override)
概念:在繼承關係中,方法的名稱一樣,引數列表也一樣。

重寫(Override):方法的名稱一樣,引數列表也【一樣】。也叫做方法的覆蓋、覆寫。
過載(Overload):方法的名稱一樣,引數列表【不一樣】。

方法的覆蓋重寫特點:建立的是子類物件,則優先用子類方法。

繼承中方法的覆蓋重寫-注意事項

方法覆蓋重寫的注意事項:

1.必須保證父子類之間方法的名稱相同,引數列表也相同。
@Override:寫在方法前面,用來檢測是不是有效的正確覆蓋重寫。
這個註解就算不寫,只要滿足要求,也是正確的方法覆蓋重寫

2.子類方法的返回值必須【小於等於】父類方法的返回值範圍。
小擴充套件提示:String有一個父類是Object,也就是說Object類是所有類的公共最高父類(祖宗類),java.lang.String就是Object的子類

3.子類方法的許可權必須【大於等於】父類方法的許可權修飾符。
小擴充套件提示:public > protected > (default) > private
備註:(default)不是關鍵字default,而是什麼都不寫,留空。

繼承中方法的覆蓋重寫-應用場景




繼承中構造方法的訪問特點



super關鍵字的三種用法

  1. 在子類的成員方法中,訪問父類的成員變數。
  2. 在子類的成員方法中,訪問父類的成員方法。
  3. 在子類的構造方法中,訪問父類的構造方法。

this關鍵字的三種用法

super關鍵字用來訪問父類內容,而this關鍵字用來訪問本類內容。用法也有三種:

  1. 在本類的成員方法中,訪問本類的成員變數。
  2. 在本類的成員方法中,訪問本類的另一個成員方法。
  3. 在本類的構造方法中,訪問本類的另一個構造方法。
    在第三種用法當中要注意:
  • this(...)呼叫也必須是構造方法的第一個語句,唯一一個。
  • super和this兩種構造呼叫不能同時使用。

super與this關鍵字圖解

Java繼承的三個特點

  1. Java語言是單繼承的:一個類的直接父類只能有唯一一個。
class A{}
class B extends A{}//正確
class C{}
class D extends A,C{}//錯誤
  1. Java語言可以多級繼承:我有一個父親,我父親還有一個父親,也就是爺爺。
class A{}
class B extends A{}//正確
class C extends B{}//正確
  1. 一個子類的直接父類是唯一的,但是一個父類可以擁有很多個子類。可以有很多個兄弟姐妹,生二胎。
class A{}
class B extends A{}//正確
class C extends A{}//正確