zoukankan      html  css  js  c++  java
  • 接口和抽象类

    1.抽象类与接口的抽象层次是不同的

    抽象类是对类抽象,接口是对行为抽象。类包含了属性与行为,所以说接口是更具体的抽象

    2、抽象类与接口的设计层次是不同的

    抽象类是一种自下而上的设计,先有子类才能提取公同的属性与行为,抽象出父类; 接口是一种自上而下的设计,先规定行为方法,只要可以实现这些行为,就可以成为接口的实现类。

    3、抽象类与其派生类的关系和接口与其实现类的关系本质是不同的

    抽象类与其派生类是一种 is-a 关系,即父类和派生子类在概念上的本质是相同的(父子关系,血缘联系,很亲密)。 接口与其实现类是一种 like-a 关系,即接口与实现类的关系只是实现了定义的行为,并无本质上的联系(契约关系,很淡漠的利益关系)。

    举个例子 比如说一个动物抽象类,定义了跑的方法、叫的方法,但如果一个汽车类可以实现跑、可以实现叫,它就可以继承动物抽象类吗?!这太不合理了,汽车不是动物呀!而如果通过接口定义跑的方法、叫的方法,汽车类作为实现类实现跑和叫,完全OK很合理,就因为没有继承关系的约束。

  • 相关阅读:
    Explain用法
    轻量快速的 Python ASGI 框架 uvicorn
    conda常用命令
    ubuntu 安装并配置zsh
    ubuntu安装zsh终端
    /etc/profile、/etc/bashrc、.bash_profile、.bashrc
    python用List的内建函数list.sort进行排序
    python对象排序
    修改python接口返回给前端的格式封装
    linux设置uwsgi开机自启
  • 原文地址:https://www.cnblogs.com/wangyuyanhello/p/12298310.html
Copyright © 2011-2022 走看看