在.net 应用程序设计中如何选择class, abstract class ...
来源:互联网 发布:mysql 给用户root权限 编辑:程序博客网 时间:2024/06/05 05:42
本文面向的读者:.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则可以提供更好的灵活性。你可以给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 应用程序设计中如何选择class, abstract class ...
- Java中继承abstract class和interface以及继承abstract class和普通class的应用比较
- abstract class
- Abstract Class
- C#中interface/abstract class与class/struct的应用小结
- interface vs abstract class 应用场景总结
- 是选择abstract class 还是选择 interface这是个问题
- 如何在Dll中导出class
- 如何在Dll中导出class
- 在Grails中如何使用Class.forName
- 如何在MyEclipse中反编译class文件
- Java 中 abstract class和interface
- java中interface和abstract class
- c#中abstract与class的区别
- C++中Abstract class的使用
- Abstract class和Final class
- 面向对象程序设计中的abstract class和interface
- 在Java和C#中,abstract class和interface的区别
- 使用oracle odp.net 11g的.net程序发布方法
- vista sp1将集成.net framework 3.0/2.0 sp1
- c#.net中参数修饰符ref,out ,params得区别
- vista sp1将集成.net framework 3.0/2.0 sp1
- 2008新春巨献,动网.net论坛v1.1 rc1发布
- 在.net 应用程序设计中如何选择class, abstract class ...
- vs 2005中也已可以查看.net源码
- .net中windows窗体间的数据交互
- com和.net域名注册费拟提高
- 用db2 vs2005 .net插件进行xml数据验证
- 恶意抢注图谋获利“杰友升.net”域名被判注销
- oracle推支援.net 3.5与visual studio 2008开发工具
- 一个生成.net api文档的工具sandcastle
- 成熟 先进 asp .net3.5主机震撼登场