java 接口和抽象类的一个最大的区别
2024-10-16 21:17:07
写在前面,下面是在百度百科上看到的,之前就看过,这次再看感觉有更深的体会,真的是这样,每一个脚印都会留下痕迹
java接口和java抽象类有太多相似的地方,又有太多特别的地方,这里说下两者之间的一个最大的区别:
1.java抽象类可以提供某些方法的实现,但是java接口不可以,这个可能是java抽象类唯一的优点,但是这个优点非常有用,如果向一个抽象类里加一个新的具体的方法,那么它所有的子类一下子都得到了这个新方法。
而java接口就做不到这一点,如果向一个java接口里加入一个新方法,所有实现这个接口的泪就无法成功通过编译了,因为必须让每一个继承这个接口的类都再实现这个方法才行,很明显这是java接口的缺点。
2.一个抽象类的实现只能有它的子类给出,java只能单继承,所以抽象类要是作为类型定义工具的话就不好使了。在这一点上,接口的优势就出来了,任何一个实现了java接口的规定方法的类都可以具有这个接口的类型,而一个类又可以实现任意多个java接口,从而这个类就有了多种类型,所以java接口是定义混合类型的理想工具,混合类意思是一个类不仅具有某个主类型的行为,而且具有其他的次要类型行为。
最新文章
- Qt 程序打包发布
- 微信JSApi支付~坑和如何填坑
- Java — JTree and JTable以及sqlServer的两种连接
- 2016-12-14:通过static关键字,使用类成员函数作为回调函数
- 借教室(codevs 1217)
- c# js调用AjaxPro方法出错解析
- JavaScript省市联动菜单
- rabbitmq-message(C#)
- Ubuntu on win10
- ML—高斯判别分析
- 2017-2018-1 Java演绎法 第六七周 作业
- PHP——秒数转换为时分秒
- Python3 socket网络编程(一)
- Photoshop独立安装包下载页面
- tiny png
- 设置实体类型中String类型的属性值为String.Empty
- 探秘Java中的String、StringBuilder以及StringBuffer(转载)
- NRF24L01模块配置
- 各种SQL查询技巧汇总 (转)
- Hibernate缓存研究