要修复这个错误我们不得不在类Car和Train中实现方法Brake() 示范代码如下
public class Car : Vehicles
{
…
public void Brake()
{
SystemConsoleWriteLine(Stop your car);
}
}
public class Train : Vehicles
{
…
public void Brake()
{
SystemConsoleWriteLine(Stop your train);
}
}
如果我们使用抽象类或正常类Vehicles我们仅仅需要在类Vehicles中添加Brake()方法并且实现这个方法然后我们根据具体需要来决定是否要覆盖类Car 或Train中的Brake()方法
public abstract class Vehicles
{
…
//新添加的方法无需在它的子类中覆盖这个方法
public void Brake()
{
SystemConsoleWriteLine(Stop your vehicles);
}
}
Class则可以提供更好的灵活性你可以给Class添加任何Members只要添加的不是Abstract Method即可(也就是说你要提供一个有具体实现的方法)这样就不会影响从该Class继承的类已有代码无需做任何改变
设计原则
优先考虑使用Class或Abstract Class而不是Interface
使用Abstract Class代替Interface来降低Class继承层次之间的耦合关系
使用Interface如果你需要给一个值类型实现(Value Type 象STRUCT就是值类型)多态继承(Polymorphic Hierarchy)(值类型除了从Interface继承以外不能从其他Type继承)
在需要多重继承的情况下可以考虑使用Interface
参考目录Microsoft NET Development Series Framework Design Guidelines
[] []