關於子類和父類中的this的用法

2022-08-31 09:30:12 字數 545 閱讀 4973

public class demo 

}class fu

}class zi extends fu

這裡面的this很奇怪,為什麼輸出結果是1,this不是指向當前物件麼,當前物件不是子類的例項麼?例如父類有get和set方法,裡面應該有this關鍵字,當子類繼承父類時,呼叫get和set方法時,this關鍵字如何區分呼叫的是子類的filed還是父類的filed(假設有同名的filed)?

這個問題由@newmoons網友做出了講解:

在繼承多型中:

1、對於方法的覆蓋,new的誰就調誰,這就是多型。

2、對於成員變數的覆蓋,this在哪個類就指向哪個類的成員變數,沒有多型。

並給出了一段精彩的**:

public class demo 

}class fu

public string fun1()

}class zi extends fu

}

另外一篇非常好的文章

python的父類和子類中關於繼承的不同版本的寫法

1 python 2.7中的繼承 2 在python 2.7中,繼承語法稍有不同,electriccar 類的定義類似於下面這樣 3class car object 4def init self,make,model,year 5 snip 67 class electriccar car 8def...

JavaScript中的子類和父類的繼承

使用原型繼承,中間使用臨時物件作為child的原型屬性,臨時物件的原型屬性再指向同乙個物件,這樣當修改子類的原型屬性,就不會影響到其他子類和父類。function extend child,parent 建立臨時物件 child.prototype parent.prototype 臨時物件的原型屬...

關於父類子類繼承關係

一.繼承 子類可以直接復用父類中的成員.子類繼承父類所有方法的宣告和實現 非私有的例項變數以及協議 繼承時要在.h中宣告一下 繼承具有單根性和傳遞性 繼承的根類 大多都繼承自 nsobject 類,所以在定義乙個類時,要繼承nsobject 類。繼承就是 優化公共部分交給父類 例如 person是父...