1
這是一個C#項目。如何有一個默認的方法,但仍然能夠覆蓋它?
我有幾個類從一個繼承。大多數兒童班有相同的行爲,而其中一些行爲有所不同。我正在使用關鍵字new
。
public class Parent
{
public DataTable FetchScore()
{
// blahblah
}
}
public class ChildNormal : Parent
{
}
public class ChildOdd : Parent
{
public new DataTable FetchScore()
{
DataTable dt = base.FetchScore();
// blahblah
}
}
但是構建說使用new
並不是一個好的做法。
我不能使用virtual
和override
,因爲我想要一個默認值。我不想多次複製相同的覆蓋實現。
我大部分時間都花在JavaScript和Python上。儘管它們是動態的,我可以輕鬆做到這一點。如何用C#做到這一點?或者這種情況下的良好做法是什麼?
您可以使用虛擬和覆蓋,只需將虛擬基礎方法放置在基類中。 – 2014-09-02 10:12:31
另見[這裏](http://stackoverflow.com/questions/11046387/exact-difference-between-overriding-and-hiding)爲什麼*使用'new'(可能)不是你想要做的。 – Rawling 2014-09-02 10:18:22