• 接口和抽象类区别。


    abstract class 犬{
    abstract void 吃();
    abstract void 叫();
    }
    interface 犬{
    abstract void 吃();
    abstract void 叫();
    }
    添加一个功能,缉毒。单独描述一个缉毒功能犬。
    class 缉毒犬 extends 犬{
    void 吃(){}
    void 叫(){}
    void 缉毒(){}
    }

    class 缉毒犬 implements 犬{
    void 吃(){}
    void 叫(){}
    void 缉毒(){}
    }
    缉毒犬是犬中的一种,is a 关系。
    犬用于描述所有功能犬的基本功能,用class定义。父类。
    所以犬不适合定义成接口。

    (背景:如果现在有缉毒猪,缉毒机器人..。我们应该怎么做呢?
    现在是狗,猪,机器人都有缉毒这个功能。为了不让缉毒功能重复定义,我们把它抽象成接口。)

    class 缉毒猪{
    void 缉毒(){}
    }
    具备缉毒功能的有很多。缉毒功能需要抽取。抽取到类中,还是抽取到接口中?
    都试一下,先定义成类。
    abstract class 缉毒{
    abstract void 缉毒();
    }
    不行,缉毒犬继承犬类,就不能继承其它类,因为类不能多继承。

    定义成接口试试
    interface 缉毒{
    abstract void 缉毒();
    }

    class 缉毒犬 extends 犬 implements 缉毒{
    void 吃(){}
    void 叫(){}
    void 缉毒(){}
    }
    这是可行的。
    类用于描述事物的共性基本功能。
    接口用于定义的都是事物的额外功能。

  • 相关阅读:
    UITextField的总结
    【实战】登录界面
    点分治学习
    2020/3/1
    2020/2/29
    2020/2/28
    2020/2/27
    2020/2/27
    最小树形图
    Ch’s gift HDU6162
  • 原文地址:https://www.cnblogs.com/longhs/p/5380794.html
Copyright © 2020-2023  润新知