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是父...