美文网首页
Java类、抽象类、接口的异同

Java类、抽象类、接口的异同

作者: LaobingFung | 来源:发表于2019-02-17 15:46 被阅读0次

    Java是面向对象的编程语言,类是对象的结构框架,类中定义了对象的成员变量和方法,此外还可以有类本身的静态变量和方法。
    类可以被继承,每一次继承中,子类只能有一个直接的父类,但是可以有多层继承的关系。


    抽象类

    抽象类是一种特殊的类,抽象类不能用来创建对象,但抽象类可以有构造函数,抽象类需要被继承,可以使用其非抽象子类来创建对象。
    若一个类中含有抽象方法,则该类必须声明为抽象类;反之,若一个类声明为抽象类,该类不一定有抽象方法,声明这种抽象类的目的在于使其不能用来创建对象。
    构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。


    接口

    接口并不是类,接口中的方法只能是抽象方法,接口不能用来创建对象,接口可以被接口多继承,但最终需要被类实现,实现需要使用关键字implements。

    • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
    • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
    • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

    总结

    抽象类 接口
    创建对象 不能 不能
    构造函数 没有
    成员变量 没有
    成员方法 没有
    类变量 只能用public static final修饰
    类方法 没有
    继承 单继承 单继承 多继承
    实现 - - 一个类可实现多个接口

    参考资料
    Java基础 接口和抽象类
    Java 抽象类
    Java 接口

    相关文章

      网友评论

          本文标题:Java类、抽象类、接口的异同

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