このようなものを持つ:
public abstract class AAA
{
protected abstract virtual string ToString() // Error
{
// Base Stuff
}
}
public abstract class BBB : AAA
{
public override string ToString()
{
// Use base.ToString();
// More Stuff
}
}
私は別の投稿(仮想クラスの抽象メソッド)を読みました 魔女は私の質問にかなり似ていましたが、少し違いがあります。AAA.ToString() に基本動作を持たせ、派生クラスに強制的にオーバーライドさせたいと思います。
このようなことができることは知っていますが(下にスクロール)、適切な方法を探していました。
public abstract class AAA
{
public abstract string ToString();
protected string ToString2()
{
// Base Stuff
}
}
public class BBB : AAA
{
public override string ToString()
{
// Use base.ToString2();
// More Stuff
}
}
おそらく IAAA インターフェイスを作成して、次のように BBB クラスを構築することもできます。
public class BBB : AAA, IAAA { ... }
しかし、私に正しく見えないでください。