public class test }
class test0
public string getstr0()
public void setstr0(string str0)
public string getstr()
public void setstr(string str)
}class test1 extends test0
public void setstr(string str)
public string getstr1()
public void setstr1(string str1)
}
輸出結果: -->newstr0,null
總結:以前沒有特別注意,以為成員變數在子類中覆蓋後,繼承的父類方法中會自動獲取當前子類中變數的值。
事實上不是這樣。
方法中引用的成員變數,它的值只是方法所在類中賦的值,而不是子類中覆蓋後的變數值。
子類覆蓋後的成員變數,只屬於子類。
大部分情況下,子類不需要覆蓋父類的成員變數,直接繼承就可以。
Java基礎 成員變數的繼承與覆蓋
通過繼承可以得到父類的成員變數,子類的成員變數包括從父類繼承的成員變數 包括從祖先類中繼承的成員變數 以及子類中重新定義的成員變數。本次介紹內容包括 可以繼承哪些成員?如果子類和父類出現了相同的成員變數如何處理?1 可以繼承的成員變數 可以繼承的成員變數與成員變數的訪問控制型別有關,成員變數的訪問控...
區域性變數與成員變數的區別 過載,覆蓋的要求
區域性變數與成員變數的區別 過載,覆蓋的要求 區域性變數和成員變數的區別 成員變數 區域性變數 定義位置 定義在類以內方法以外 定義在類中 作用範圍 至少在本類中有效 從定義為位置開始到定義的 塊結束 預設值 存在預設值 同陣列 沒有預設值 命名衝突 可以和區域性變數重名,在重合範圍內不允許重名 重...
關於變數覆蓋
由於private變數受訪問許可權的限制,它不能被覆蓋。屬性的值取父類還是子類並不取決於我們建立物件的型別,而是取決於我們定義的變數的型別 既 等號前面的型別 friendly protected和public修飾符並不影響屬性的覆蓋。靜態變數和靜態常量屬於類,不屬於物件,因此它們不能被覆蓋。常量可...