語言是C#。
說我有重寫類方法的C#。我可以自動替換派生類而不是基類
class A:B
{
protected override void Method(BaseClass bc)
{
(DerivedClass)bc.DerivedClassField = blabla;
}
}
是否有任何庫/語言功能的/ etc使用,我可以寫如下:由
class A:B
{
protected override void Method(BaseClass bc)
{
bc.DerivedClassField = blabla;
}
}
,比如增加一些屬性類A還是什麼?
對不起,格式糟糕。
爲什麼演員表不可接受?你有沒有考慮過審查你的設計?這將從根本上打破OOP的原則。 – Strillo 2011-12-19 13:13:42
B類應該是可重用的,所以我們有許多方法可以在許多類中重寫。另一方面,我們一定知道bc實際上是哪個類(好吧,我知道這個說法並不能讓我看起來像個能幹的程序員:))。我正在考慮審查設計,但仍然渴望儘可能少地編寫代碼)此外,這將使得重新使用B更容易。 – noaRAVE 2011-12-19 13:27:51
這是這個問題的重複:http://stackoverflow.com/questions/8509747/virtual-lists-in-c-sharp-to-avoid-typecasting-in-inherited-classes/8510522#8510522看到它的一些如何處理這個問題的想法。 – 2011-12-19 15:49:39