day09 繼承 super this 抽象類

2021-09-28 21:56:02 字數 1893 閱讀 2455

子父類**現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用 super 關鍵字,修飾父類成員變數,類似於之前學過的 this 。

class

father

class

sonextends

father

}class

extendsdemo03

} 演示結果:

fu num =

6zi num =

6}

應該用:surper.父類成員變數名

小貼士:fu 類中的成員變數是非私有的,子類中可以直接訪問。若fu 類中的成員變數私有了,子類是不能

直接訪問的。通常編碼時,我們遵循封裝的原則,使用private修飾成員變數,那麼如何訪問父類的私有成員

變數呢?對!可以在父類中提供公共的get***方法和set***方法。

class

ziextends

fu} 演

示結果:

fu num =

5zi num =

6

當類之間產生了關係,其中各類中的構造方法,又產生了哪些影響呢?

首先我們要回憶兩個事情,構造方法的定義格式和作用。

構造方法的名字是與類名一致的。所以子類是無法繼承父類構造方法的。

構造方法的作用是初始化成員變數的。所以子類的初始化過程中,必須先執行父類的初始化動作。子類的構造方法中預設有乙個 super() ,表示呼叫父類的構造方法,父類成員變數初始化後,才可以給子類使用。**如下:

classfu}

class

ziextendsfu}

public

class

extendsdemo07

} 輸出結果:

fu()

zi()

super :代表父類的儲存空間標識(可以理解為父親的引用)。

this :代表當前物件的引用(誰呼叫就代表誰)。

super和this的用法

訪問成員

this.成員變數 ‐‐ 本類的

super.成員變數 ‐‐ 父類的

this.成員方法名() ‐‐ 本類的

super.成員方法名() ‐‐ 父類的

class

animal

} class cat extends

animal

public void

eattest()

} public class

extendsdemo08

} 輸出結果為:

animal : eat

cat : eat

animal : eat

訪問構造方法

this(…) ‐‐ 本類的構造方法

super(…) ‐‐ 父類的構造方法

子類的每個構造方法中均有預設的super(),呼叫父類的空參構造。手動呼叫父類構造會覆蓋預設的super()。super() 和 this() 都必須是在構造方法的第一行,所以不能同時出現。

package 高階語法.day11.day11;

class

animal

animal

(int a)

}class

catextends

animal

public

void

eat()}

public

class

superandthis

}//結果:我是父類的帶乙個引數的建構函式

//我是子類呀

day09 多型總結

2019.07.09 day09 多型 判斷多型的四個原則 1.跨類且繼承 2.子類重寫長輩類的方法 3.子類物件賦值給長輩的引用 4.用長輩的引用打點呼叫方法 注意 能呼叫出那些方法取決於左邊類或介面的左邊 長輩類或長輩介面 呼叫方法的內容取決於等號右邊 如果重寫過,就執行子類重寫後方法的內容 如...

前端筆記day09

1 完 員列表的刪除功能 姓名姓別 刪除 2 vue的v for語法可以遍歷那些值,分別寫出遍歷不同值的 1 迭代數字 這是第 個p標籤 2 迭代data中的普通物件 3 迭代data中的陣列 3 文字敘述v model和v bind的差別 1 v bind動態繫結指令,預設情況下標籤自帶屬性的值是...

day09物件導向

類是對某一類事物的抽象描述,用於描述多個物件的共同特徵,它是物件的模板 而物件用於表現現實中該類事物的個體,它是類的例項 類是用於描述事物的,類中可以定義事物的屬性和行為 物件是通過描述的這個類,使用new關鍵字建立出來,通過物件可以呼叫該物件具體的屬性和功能 this關鍵字 用來區分成員變數和區域...