C# 在类中实现接口
实现接口的类必须包含该接口所有成员的实现代码,且必须匹配指定的签名(包括匹配指定的get和set块),并且必须是公共的。例如:
public interface IMylnterface
{
void DoSomething();
void DoSomethingElse();
}
public class MyClass : IMylnterface
{
public void DoSomething() {}
public void DoSomethingElse () {}
}
可使用关键字virtual或abstract来实现接口成员,但不能使用static或const。还可在基类上实现接口成员,例如:
public interface IMylnterface
{
void DoSomething();
void DoSomethingElse();
}
public class MyBaseClass
{
public void DoSomething() {}
}
public class MyDerivedClass : MyBaseClass, IMylnterface
{
public void DoSomethingElse() {}
}
继承一个实现给定接口的基类,就意味着派生类隐式地支持这个接口,例如:
public interface IMylnterface
{
void DoSomething();
void DoSomethingElse();
}
public class MyBaseClass : IMylnterface
{
public virtual void DoSomething() {}
public virtual void DoSomethingElse() {}
}
public class MyDerivedClass : MyBaseClass
{
public override void DoSomething() {}
}
显然,在基类中把实现代码定义为虚拟非常有用,这样派生类就可以替换该实现代码,而不是隐藏它们。如果要使用new关键字隐藏一个基类成员,而不是重写它,则方法MyInterfkce.DoSomething()就总是引用基类版本,即使通过这个接口来访问派生类,也是这样。
点击加载更多评论>>