美文网首页
Java学习笔记(抽象类与接口)

Java学习笔记(抽象类与接口)

作者: wcd123 | 来源:发表于2019-08-12 23:01 被阅读0次

    抽象类

    1. 抽象类不能被实例化
    2. 抽象类里包含抽象方法,也可以有非抽象方法。
    3. abstract 不能与final一同修饰一个类
    4. abstract 不能与final, static, private, native一同修斯一个方法

    接口

    1. 接口中定义的成员变量自动默认为public static final,可以直接通过类名.变量名来调用
    2. 接口中的方法自动为public,因为接口必须要能被实现
    3. 接口中不存在有具体方法体的方法。
    4. 一个类要实现某接口,必须要实现这个接口中所有的方法。如果只实现了一部分方法,则这个类必须要声明为抽象类。

    抽象类 vs 接口

    1. 语法层次比较
      抽象类是个类,遵循单继承的原则,而一个类可以实现多个接口。
    2. 设计层次理解
    • 抽象类理解为is-a的关系,接口理解为like-a的关系,实现的是有没有某个行为的关系。
    • 抽象类是多个子类向上抽象出来的,它们具有相同的特征,可以用一个基类来表示;而接口是行为上的抽象,是多个类具有相关的行为。比如:猫和狗向上可以抽象为动物的抽象类,猫和狗都是一个动物,它们有自己玩球的姿势。而机器人也会玩球(比如发条魔灵),那么可以统一抽象出一个接口玩儿个球,本质上动物和机器人属于不同的类别,但它们都有自己玩球的行为。

    相关文章

      网友评论

          本文标题:Java学习笔记(抽象类与接口)

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