比如父類中的int i=0;在他的子類中將int i=1;測試不可行;那么請問如果想重寫的話要怎么辦?
5 回答
已采納

喬小欠兒
TA貢獻(xiàn)18條經(jīng)驗 獲得超15個贊
子類只可以重寫父類的方法,但不可以重寫父類的變量。但子類可以通過super調(diào)用到父類里的public和protected
的變量。
重寫父類的變量也沒什么意義啊,你子類要用什么變量自己定義自己使用就好了。

慕男嬸
TA貢獻(xiàn)98條經(jīng)驗 獲得超73個贊
方法是動態(tài)綁定(即編譯期不確定,運行期才確定)的,也就是說不是和類型綁定在一起的,運行時,對象是誰就調(diào)用誰的方法(對象是子類的對象,那么就調(diào)用子類重寫后的方法,是父類,就調(diào)用父類的方法。);
而屬性是和類型綁定在一起的,是靜態(tài)綁定(即編譯期已經(jīng)定了。
Person p = new Student();
例如上述寫法
Person是父類型,Student是子類型,
假如父類型和子類型里都有 int i 這個屬性的話,
使用 p.i 將訪問父類型的屬性i ,而不是子類型的 i 。。
從這點兒上來說,屬性是不能重寫的,即使重寫也沒有意義啊。。
添加回答
舉報
0/150
提交
取消