一个类可以实现多个接口。如果在两个接口中定义了一个具有相同签名的静态方法,编译器就无法决定应该调用其中的哪一个。这是大多数OO语言试图避免多重继承的(许多(原因之一,尽管它很有用
接口IA
中的方法SomeStaticMethod
不能从实现该接口的类A
直接访问。我是不是错过了什么?
public interface IA {
public static int SomeStaticMethod() => 4;
}
public class A : IA {
public static void Bidule() {
SomeStaticMethod(); //DO NOT COMPILE
IA.SomeStaticMethod(); //COMPILES
}
}
如果将接口IA
更改为类,则它可以工作。
public class IA {
public static int SomeStaticMethod() => 4;
}
public class A : IA {
public static void Bidule() {
SomeStaticMethod(); //NOW it works
}
}