C# 中的继承接口
本文关键字:接口 继承 | 更新日期: 2023-09-27 18:34:06
在c中,尖锐的抽象方法必须由子类实现。所以我的问题是,当一个接口继承另一个接口时,为什么它不实现所有基本接口成员。
public interface IShape
{
void Points();
}
public interface ICircle: IShape
{
void IsDrawAble();
}
当我在Visual Studio 2010中运行此程序时,没有出现任何错误。根据定义,ICircle必须实现Points函数。
谢谢
接口不实现任何东西。
接口只包含具体类需要实现的成员列表。
重新声明基接口已经需要的成员是没有意义的。
同样,继承另一个abstract
类(或接口)的abstract
类不需要实现其任何方法。
当你实现ICircle
时,你也需要实现Points()
。以下代码无法编译:
class MyClass : ICircle
{
void IsDrawAble() { }
}
所以你所说的应该是:"根据定义,ICircle的所有实现也必须实现IShape成员"
你自己回答了这个问题。因为它是一个接口。接口不是类,因此它们不必(实际上不能)实现它们继承的其他接口。
当您在接口之间创建这种层次结构时,您正在定义谁实现Circle
接口也将实现IShape
。因此,对于示例:
public class Test : ICircle
{
public void Points()
{
// some code
}
public void IsDrawAble()
{
// some code
}
}
使用它:
ICircle obj = new Test();
obj.Points();
obj.IsDrawAble();
或
IShape obj = new Test();
obj.Points();
接口表示协定。它们仅包含方法、属性、事件或索引器的签名。接口根本不实现。实现接口的类/结构必须实现接口定义中指定的接口成员。
您创建的层次结构只是意味着实现ICircle
接口的任何内容也实现IShape
接口。