知识大全 编程中如何选择Class, Abstract Class and&n

Posted

篇首语:不要什么话都跟别人讲,你说的是心里话,他们听的是笑话。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 编程中如何选择Class, Abstract Class and&n相关的知识,希望对你有一定的参考价值。

编程中如何选择Class, Abstract Class and&n  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     本文面向的读者 NET 应用程序设计师和程序员

  关键字

  Type– 类型

  Class - 类

  Abstract - 抽象的

  Interface - 接口

  Member - 成员

  Method - 方法

  Property - 属性

  预备知识 在阅读本文时 您应当了解 NET编程的基本知识并且已经掌握Class Abstract Class 和 Interface全部知识 这里我仅简单介绍一下他们的基本知识 本文的例子由C#编写 期望您对C#编程有一定的了解

  正文

  我们无法创建一个Abstract Class或Interface的实例(INSTANCE) 让我们从Abstract Class和Interface的定义来看他们的不同 Abstract Class可以包含Abstract Methods 和 Abstract Properties 也可以包含其他的Members 象正常的Class一样 而Interface只能包含Abstract Methods和Properties(属性) Interface中的所有Methods和Properties不需要加Abstract和Public关键字 因为这两个关键字在Interface中是默认的 举例如下

  

>

  

  通常来讲 在设计时优先考虑使用Class或Abstract Class而不是Interface Interface的主要缺点是灵活性比较差 一旦你定义好了Interface 那么它的Members就固定了 如果你要对已经发布的程序添加新的Method 就会破坏你已经的实现该接口的Type(Class Struct等) 因为你必须在你已有的Type中实现新的方法 否则你的程序将无法通过编译

  

  例如类Car和Train实现了接口Vehicles 现在我们要给接口Vehicles再加一个方法Brake() 如果我们现在编译类Car和Train 编译器将报错

  

>

  如果我们使用抽象类或正常类Vehicles 我们仅仅需要在类Vehicles中添加Brake()方法并且实现这个方法 然后我们根据具体需要来决定是否要覆蓋类Car 或Train中的Brake()方法

  

>

  Class则可以提供更好的灵活性 你可以给Class添加任何Members 只要添加的不是Abstract Method即可(也就是说你要提供一个有具体实现的方法) 这样就不会影响从该Class继承的类 已有代码无需做任何改变

  

  设计原则

  &# ; 优先考虑使用Class或Abstract Class而不是Interface

  &# ; 使用Abstract Class代替Interface来降低Class继承层次之间的耦合关系

  &# ; 使用Interface 如果你需要给一个值类型实现(Value Type 象STRUCT就是值类型)多态继承(Polymorphic Hierarchy) (值类型除了从Interface继承以外 不能从其他Type继承)

cha138/Article/program/net/201311/12850

相关参考

知识大全 .NET中Class,Abstract and Interfa选择[1]

.NET中Class,AbstractandInterfa选择[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 详解abstract class和interface的本质

   我们知道abstractclass和interface的不同在语法定义和编程的角度这些层面的区别是比较低层次的非本质的本小节将从另一个层面abstractclass

知识大全 抽象类(abstract class)和接口(interface)

  java中的abstractclass和interface  abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制正是由于这两种机制的存在才赋予了Java

知识大全 abstract class和interface的使用场景分别是什么

abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制正是由于这两种机制的存在才赋予了Java强大的面向对象能力abstractclass和interface之

知识大全 ASP.NET学习-abstract class 和 interfa

ASP.NET学习-abstractclass和interfa  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 asp无限级分类支持js收缩伸展

  <!#includefile="adoconnasp"><style>dotted_class borderbottom:pxdotted#;dotted_cla

知识大全 选择器中含有空格在使用示例及注意事项

带空格表示的是选择class为test里面隐藏的元素不带空格表示的是选择隐藏的class为test的元素在使用过程中一定需要注意下   原理解释var$t_a=$("test:hidden"

知识大全 jquery中选择块并改变属性值的方法

本文为大家介绍下使用jquery改变class属性的值通过removeClassaddClass实现具体如下感兴趣的朋友可以学习下   jquery改变class属性的值复制代码代码如下:$

知识大全 C#中abstract关键字的使用方法

C#中abstract关键字的使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学习过C#

知识大全 java中public class与class的区别详解

以下是对java中publicclass与class的区别进行了分析介绍需要的朋友可以过来参考下   在编写类的时候可以使用两种方式定义类publicclass定义类:class定义类:如果