美文网首页
接口与抽象类的区别

接口与抽象类的区别

作者: 柳蒿 | 来源:发表于2019-10-17 10:11 被阅读0次

    接口:

    1. 接口中的变量和方法默认都是public的,且只能是public
    2. 接口中的变量默认是static final的
    3. 接口中的方法默认是abstract的

    抽象类

    1.抽象类中的变量和方法默认是包访问的

    接口和抽象类的区别

    1. 接口中的方法不能有实现,static,default方法可以有方法体。抽象类的抽象方法不能有实现,但普通方法可以有实现
    2. 接口可以多实现,抽象类只能单继承
    3. 普通类实现接口需要实现全部的方法,而抽象类实现接口则可以不实现任何方法。
    4. 普通类继承一个抽象类,需要实现所有的抽象方法,抽象类继承抽象类也是可以不实现任何方法。
    5. 接口是对行为的抽象,是一种行为的规范。抽象类是对类的抽象,是设计的模板。
    6. 接口中的变量默认是public static final的,方法默认是public abstract的。抽象类中默认都是包访问的

    接口中的static方法,default方法

    • static方法可以有实现,不能被继承。调用方法和类的静态方法相同
    • default方法可以有实现,能被继承。这是Java8中新添加的特性,Java凭借这一新特性实现了多继承

    相关文章

      网友评论

          本文标题:接口与抽象类的区别

          本文链接:https://www.haomeiwen.com/subject/nhqxmctx.html