我有以下接口:
public interface IX
{
void MethodA();
void MethodB();
}
我在界面方法与方法B中有两个方法合同。 我将界定实施上述接口的一组类别。 在这两种方法中,方法A对于实施接口的所有类型都很常见。 我可以确定一个抽象的类别如下:
public abstract class XBase:IX
{
public void MethodA()
{
// Common behaviour implementation
}
public abstract void MethodB();
}
并且将这一类别继承到需要实施上述接口的所有类型。 它行之有效。
但此处为抽象的类别,即增加公开的抽象方法B(); 它看上去方法B合同的重复。
如果“C#”这一类别是抽象的,那么为什么C#不能允许部分接口的实施? 上述接口只有两种方法。 假设一个接口有10种方法,5种是通用功能,5种不是,我们被迫增加5种在抽象类别中并不常见的方法?