在所有实现类型中共享的静态方法

0 c# interface

在c#中,如何定义一个由所有派生/实现类型实现的静态方法?我知道你无法在界面中定义静态方法.

基本前提是这样的:

比方说,我有一个生物基类.衍生类型将是人类和狗.

我想要一种方法,可以回答我说给定生物体的腿数.所以人类将是2,狗将是4,等等.

我可以将这样的方法作为实例方法,但它没有多大意义,因为它对于所有Dog类型都是相同的方法,对所有Human类型都是相同的,等等.

Nix*_*Nix 6

我不认为你完全理解OO.使它成为实例方法是完全合理的.

如果你有两只狗(一只名叫幸运儿),幸运会被一条失去一条腿的汽车击中,会发生什么?有了你的模型,整个狗只失去了一条腿?

但在更好的模型中:

#psudo 
class Organism{
   public abstract void legs(){ return 0;}
}
class Dog : Organism{
   private int _legs;
   public int legs(){ return _legs; }
}
Run Code Online (Sandbox Code Playgroud)

然后幸运的是会失去一条腿.