接口和抽象类的区别
Posted 116970u
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口和抽象类的区别相关的知识,希望对你有一定的参考价值。
抽象类和接口都用于实现抽象,可以声明抽象方法。抽象类和接口都不能被实例化。但是在下面给出的抽象类和接口之间有许多区别。
相同点:
(1)都不能被实例化。
(2)接口的实现类或抽象类的子类只有实现了接口或抽象类中的方法后才能被实例化。
不同点:
(1)
简单地说,抽象类实现了部分抽象(0到100%),而接口实现了完全抽象(100%)。
使用抽象类和接口
在大多数时候,使用接口和抽象类是设计系统的最佳方法,例如在JDK中java.util.List
是一个包含很多方法的接口,因此有一个抽象类 - java.util.AbstractLis
为List
接口的所有方法提供基础实现,以便任何子类都可以扩展此类并仅实现所需的方法。
应该始终以接口为基础并在定义每个子类时都应该实现方法,如果有一些方法只应该实现某些子类,可以扩展基接口并使用这些方法创建一个新接口。子类可以选择在基接口或子接口之间进行选择,以根据其要求实现。如果方法的数量增长很多,那么提供一个实现子接口的骨架抽象类并为子类提供在接口和抽象类之间进行选择的灵活性也是一个不错的做法。
参考:https://www.yiibai.com/java/difference-between-abstract-class-and-interface.html
以上是关于接口和抽象类的区别的主要内容,如果未能解决你的问题,请参考以下文章