【发布时间】:2014-06-01 15:43:34
【问题描述】:
众所周知,一个接口可以继承另一个接口,接口只能包含方法签名。
interface A
{
void DoWorkA()
{ }
}
interface B : A
{
void DoWorkB()
{ }
}
现在实现接口B的类需要提供两个函数体。
public class ABC : B
{
public void DoWorkB()
{
//do some work
}
public void DoWorkA()
{
//do some work
}
}
那么为什么接口不能继承抽象类或者普通类呢。
所以如果接口继承了抽象类,那么实现这个接口的类需要提供抽象类的所有接口和抽象方法的实现。
为什么这是不可能的。
【问题讨论】:
-
这个问题的目的更多是为了澄清 C# 语法还是更多的设计原理?
-
为什么应该是可能的?说实话没有任何意义。
-
您是否正在寻找一种方式来表达“我希望接口 X 拥有 ABC 类的所有公共成员。”?这可能是一个有用的功能,但另一方面,它也可能不经常使用,而且,由于类成员可以有不同的访问修饰符,因此需要更多的思考。
-
@O.R.Mapper 我是如何解释这个问题的,“为什么类 ABC 不能暗示接口 IABC?”我认为它可以,但没有语言结构支持它。
标签: c# .net interface abstract-class