子父類**現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用 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關鍵字 用來區分成員變數和區域...