建立兩個類,b是父類,d是子類,d中重寫func方法,並且在b的構造方法中呼叫func
//b父類
public
class
bpublic
void
func()
}//d子類
public
class
dextends
b@override
public
void
func()
}//測試test
public
class
test
}//執行結果:
構造b物件
d.func()
0構造d物件
此處發現 num的值是0,為啥
先分析 num的值是0,說明還沒有被初始化。
構造d物件的同時,會呼叫到b的構造方法。
b的構造方法中呼叫了func方法,因為d中也有乙個func方法,此時會觸發動態繫結,會調到d中的 func方法。
此時d物件自身還沒有構造,此時num處在未初始化的狀態,所以值是0;
建立乙個子類的例項,回就回同時建立出乙個父類的例項。父類的構造方法先被呼叫,然後才呼叫子類的構造方法。
構造方法盡可能簡單,盡量像慎重去呼叫其他方法,防止這個被呼叫的方法被子類覆寫,出現不可預期的情況。
多型是物件導向程式設計中比較難理解的部分,多型帶來的好處將會在抽象類和介面上體現出來。
多型其實是乙個更廣泛的概念,和繼承這樣的語法並沒有必然聯絡。
無論什麼語言,多型的核心就是呼叫者不必關注物件的具體型別,這是降低使用者使用成本的一種重要方式。
物件導向程式設計 五 構造方法
構造器,又稱構造方法 constructor 構造器用於構造該類的例項 物件 格式如下 構造方法是一種特殊的方法 通過new關鍵字呼叫!構造器雖然有返回值,但不能定義返回型別 返回值型別肯定是本類 不能在構造器裡呼叫return。如果我們沒有定義構造器,則系統會自動定義乙個無參的建構函式。如果已定義...
(8)物件導向程式設計
bin sh set x source dir pwd build dir mkdir p build dir cd build dir cmake source dir make 直接輸入.build.sh進行編譯cmake minimum required version 2.6 project...
物件導向 構造方法
又稱構造器,是乙個特殊的方法,它是方法名與類名相同且沒有返回值型別的方法。作用 用來給成員變數初始化定義語法 修飾詞 類名 有參傳參 無參構造器 如果在定義類時,沒有新增構造方法,系統會預設提供乙個公有的無參的構造方法 有參構造器 因為構造器是用來給成員變數初始化的,為了方便,所以形式引數的名稱都與...