子父類成員,變數、函式、建構函式
1、變數
如果子類中出現非私有的同名變數時,子類要訪問本類中的變數,用this。子類要訪問父類中的同名變數,用super。
super的使用和this的使用幾乎一致。this代表的是本類物件的引用。super代表的是父類物件的引用
2、函式
當子類出現和父類一模一樣的函式時,當子類呼叫該函式,會執行子類函式的內容。如同父類的函式被覆蓋一樣。
這種情況是函式的另乙個特性:重寫(覆蓋)
但子類繼承父類,沿襲了父類的功能,到子類中,但是子類雖具備該功能,但是功能的內容卻和父親不一致,這是,沒有必要定義新功能。
而是使用覆蓋特殊,保留父類的功能定義,並重寫功能內容。
覆蓋:1,子類覆蓋父類,必須保證子類許可權大於等於父類許可權,才可以覆蓋,否則編譯失敗。
2,靜態只能覆蓋靜態。
注意:過載:只看同名引數列表。重寫:子父類方法一模一樣
3,子父類中的建構函式
在對子類物件進行初始化時,父類的建構函式也會執行,那是因為子類的建構函式預設第一行有一條隱式的語句super();
super():會訪問父類中空引數的建構函式。而且子類中所有的建構函式預設第一行都是suoer()。
為什麼子類一定要訪問父類中的建構函式。
因為父類中的資料子類可以直接獲取。所以子類物件在建立時,需要檢視父類是如何對這些資料進行初始化的。所以子類在
物件初始化時,要先訪問一下父類中的建構函式。
如果要訪問父類中指定指定的建構函式,可以通過手動定義super語句的方式來指定。
注意:super一定定義在子類建構函式的第一行。
結論:子類的所有建構函式,預設都會婦女高溫父類中空引數的建構函式。因為子類每乙個建構函式內的第一行都有一句隱式super();
當父類中沒有空引數的建構函式時,子類必須手動通過super或者this語句形式來指定要訪問的建構函式。
當然,子類的建構函式第一行也可以手動指定this語句來訪問本類中的建構函式,子類中至少會有乙個建構函式
會訪問父類中的建構函式。
物件導向(子父類中變數的特點)
子父類出現後,類成員的特點 類中成員 1,變數。2,函式。3,建構函式。如果子類中出現父類中非私有的非同名成員變數時,可以直接使用。1,變數 如果子類中出現非私有的同名成員變數時,子類要訪問本類中的變數,用this 不寫也行,省略了this.this是本類物件的引用,super是父類物件的引用。子類...
物件導向程式設計(3) 子父類與繼承
因為物件導向,所以物件是很重要的儲存工具。和面向過程一樣,它也有變數名重複的風險,比如之前提到的原型汙染。為了一定程度上解決這個問題,引入了子父類和繼承的概念。1.子父類 父類 const getobj function getobj.prototype.getb function 另乙個類 con...
java物件導向學習筆記
1.類和物件 類可以看成是一類物件的模板,物件可以看成是該類的乙個具體例項.2.類 物件 之間的關係 聚合,繼承,實現,多型.3.記憶體區分 類是靜態概念,區 物件是new出來的,位於堆記憶體 4.構造方法 函式 1 與類同名且沒有返回值 2 用來初始化物件的函式 3 new 構造方法,建立乙個新的...