「仮想」メンバーと「静的」メンバーの概念が構文的および概念的に正反対であることはわかっていますが、限界を少し押し上げて、次のことを達成する方法があるかどうかを確認しようとしています。
Animal
プロパティを持つ抽象クラスがあるとしましょうNumberOfLegs
。私Cat
のクラスはNumberOfLegs
4 と定義されているSpider
はずですが、脚は 8 つあるはずです。次のようなコードが必要です (明らかに、以下のコードはコンパイルされません)。
public abstract class Animal {
public static abstract int NumberOfLegs { get; }
public void Walk() {
// do something based on NumberOfLegs
}
}
public class Cat : Animal {
public static override int NumberOfLegs { get { return 4; } }
}
public class Spider : Animal {
public static override int NumberOfLegs { get { return 8; } }
}
インスタンスに依存しないため、静的にしたい。サブクラスの型のみに依存します。
これをどのように行いますか?