c#

位置:IT落伍者 >> c# >> 浏览文章

.NET中Class, Abstract and Interfa选择[2]


发布日期:2020年05月21日
 
.NET中Class, Abstract and Interfa选择[2]

要修复这个错误我们不得不在类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

[] []

               

上一篇:.NET中的特殊类型成员[3]

下一篇:基于C#的接口基础教程之三