接口和抽象类的区别及使用场景


接口和抽象类的区别

1.首先,从基础语法上来说接口使用interface 而抽象类使用abstract

2.实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。

3.接口所有的成员方法都是被public abstract修饰的抽象方法,不能有方法的实现(JDK1.8之前),java 1.8中可以定义default方法体,而抽象类可以有抽象方法与实现。

4.接口的成员变量默认是静态常量,必须赋初值,不能够修改。抽象类的成员变量可以是普通变量。

5.抽象类中可以定义构造方法,接口则不能。

6.抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。

什么时候用接口或抽象类?

  1. 如果你拥有一些方法并且想让它们中的一些有默认实现,那么就使用抽象类

  2. 如果想实现多继承,则必须使用接口;java不支持多继承,子类不能继承多个类,但是可以实现多个接口,因此可以用接口来解决。

  3. 如果基本功能在不断改变,那么就需要使用抽象类。如果如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM