假設我有3個類:C#繼承問題
GrandDad,爸爸和兒子。兒子從父親繼承,繼承自GrandDad。
爺爺有2種方法:
public virtual void foo();
public virtual void do();
爸爸繼承FOO(),但覆蓋做();
public override void do();
如果兒子想修改FOO(),是可以接受的:
讓爸爸覆蓋FOO(),但只需調用foo.base()?然後兒子可以覆蓋foo(),但爸爸的foo()功能保持不變?
或者這是一個黑客的方式?
在一個側面說明,繼承不是一個好的模型,這種關係,作爲一個兒子並不總是一種爸爸和爸爸並不總是一種GrandDad。這些概念比'是'關係更具有「所有權」關係,並且可以通過類之間或整個FamilyTree中的引用進行組合更好地建模。人類繼承與類繼承並不相似。 –