接口和抽象类的异同

接口和抽象类的异同

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

      相同点:

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

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

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

 

      不同点:

        定义方式不同:

          抽象类abstract class定义

          接口interface定义

      

        意义不同:

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

          接口是对功能的实现

 

        内容不同:

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

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

 

        使用方式不同:

          抽象类是被子类extends继承

          接口是被实现类implement实现

 

        支持继承的上限不同:

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

          接口支持多继承

        

        

posted @ 2019-10-11 21:37  发育中的程序猿  阅读(243)  评论(0编辑  收藏  举报