接口和抽象类的异同

Posted javaisbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口和抽象类的异同相关的知识,希望对你有一定的参考价值。

接口和抽象类的异同

    今天来说说接口和抽象类的异同:

      相同点:

        都可以定义抽象方法,并且定义的抽象方法都需要被子类或者实现类重写

        都不能实例化对象接口需要赋值实现类对象抽象类需要赋值子类对象

        都可以定义public static 方法public static final 常量

 

      不同点:

        定义方式不同:

          抽象类abstract class定义

          接口interface定义

      

        意义不同:

          抽象类是对事物更高级的封装

          接口是对功能的实现

 

        内容不同:

          抽象类除了可以定义抽象方法之外,还能定义普通类能定义的所有方法

          接口只能定义public abstract 抽象方法,public static final 常量,public static 静态方法(jdk8开始),public default 方法(jdk8开始)。

 

        使用方式不同:

          抽象类是被子类extends继承

          接口是被实现类implement实现

 

        支持继承的上限不同:

          抽象类包括所有类都只支持单继承

          接口支持多继承

        

        

以上是关于接口和抽象类的异同的主要内容,如果未能解决你的问题,请参考以下文章

抽象类和接口的异同?

接口和抽象类的异同

java中接口和抽象类的异同点

PHP中接口与抽象类的异同点有哪些

java中的接口和抽象类的异同

总结接口和抽象类的异同