美文网首页
interface与abstract类的区别

interface与abstract类的区别

作者: 学不好语文的LJ码农 | 来源:发表于2016-12-05 16:12 被阅读57次

    以下内容整理自互联网,仅用于个人学习


    继承

    abstract使用的是extends关键字,表示一种继承关系,所以只能单继承。
    interface使用的是implements关键字,一个类可以实现多个interface。

    成员变量

    在抽象类中可以有自己的数据成员,也可以有非abstarct的方法。
    而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的方法都是public abstract的。

    抽象方法

    实现抽象类和接口的类必须实现其中的所有抽象方法。抽象类中可以有非抽象方法,而接口中所有方法为抽象方法。

    访问权限

    抽象类中的变量默认是friendly型,其值可以在子类中重新定义,也可以重新赋值。
    接口中定义的变量默认是public static final型,且必须给其赋初值,所以实现类中不能重新定义,也不能改变其值。

    相关文章

      网友评论

          本文标题:interface与abstract类的区别

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