作为开发者,谁从来没有陷入过周而复始地争论应该是使用接口还是抽象类?这是一场永无休止的争论,不同阵营的人总是坚定地坚持自己的立场。应当使用接口还是抽象类?对于初学者来说那更是满头雾水。
这个问题应该考虑一下几个因素:
asp.net 2.0 bete 测试前的构造完全是通过战略模式的定义,即通过接口,实现提供程序模型。在bate 1 时,基类(抽象类)代替了接口,因而发行版也使用基类。asp.net 团队看起来对这个问题有了解决方案,不是吗?
接口定义了行为规范,就是相关的方法地一个集合,但是没有具体的实现。接口类型是一种类型的部分描述,可能有多个类支持它,正因此,很多接口都采用后缀“able”作为结尾,诸如IDisposable,IComparable,IFormattable。如果一个接口只有一个有用的实现类,则该接口可能设计不当而造成的后果。
基类定义了子类的公共行为和公共编程接口。类比接口灵活。如果要添加一个放入到类里,则只要该方法不是抽象地,那么任何派生类(子类)都可以使用到。而接口就不行。
根据这些因素,只要有可能,尽量使用抽象类而不使用接口(但不是总是使用抽象类)
相关文章
- Go使用协程批量获取数据,加快接口返回速度
- SSM中通过okhttp3向接口发送xml格式的请求参数
- 1.(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量
- 国际快递查询接口JAVA示例-trackingmore
- 【测试】JMeter测试带header信息的接口
- Dubbo-RPC核心接口介绍
- 基于.NetCore开发博客项目 StarBlog - (26) 集成Swagger接口文档
- 在Eclipse IDE中跳转到接口实现
- Java接口 - 自动生成方法实现(可选,仅限于Eclipse)
- 快捷方式:如何让eclipse进入接口方法的唯一实现。