zoukankan      html  css  js  c++  java
  • Python 類別 class 的繼承 Inheritance

    既然 Python 是面向物件 Object Oriented 語言,它就有類別 Class 與物件 Object 的概念。

    甚麼是類別 class ? 簡單講: 類別好比蓋房子的施工藍圖 Blue Print,我們只看到圖,並沒有實體的"房子",所以類別是抽象的,不占據電腦的RAM的儲存空間。

    那甚麼是物件 object 呢? 物件就是拿著施工的藍圖,來蓋個可以看到、實體的、摸的到的房子。

    物件導向語言的特色是代碼可以重用 Reuse,而這透過類別的繼承 Inheritance 關係完成。即: 父類別的代碼與屬性,在子類別 Child Class 中可以全部接收為己有,不必重寫就可使用,甚至可依據自己特殊的需求,新增屬性與功能。我們以下面範例說明這繼承的關係:

            Grandpa --> Father --> Son

    這裡父親 Father 繼承祖父 Grandpa,而兒子 Son 繼承 Father。

    類別的宣告用保留字 class,所以 class Grandpa 就宣告一個 Grandpa 這類別。

    >>> class Grandpa : pass
    ...

    接著,以 class 子類別 (父類別) 的語法,來宣告一個子類別,同時指定其繼承關係,例如:


    >>> class Father(Grandpa) : pass
    ...
    >>> class Son(Father) : pass
    ...

    怎麼驗證這父子之間的類別關係呢? 我們可以用 issubclass(子類別,父類別) 這函數命令得知,例如:

    >>> issubclass(Son,Father)
    True
    >>> issubclass(Father, Son)
    False
    >>> issubclass(Son,Grandpa)
    True
    >>>

    有一個特別要注意的就是所有的類別都從一個根類別 Root Class 這 object 繼承過來,它是內建的,例如:

    >>> issubclass(Grandpa,object)
    True
    >>> issubclass(Son,object)

    類別的繼承機制大大提高了軟件開發的品質,人們由程序、資料該如何處理,轉向以問題解決,數據為中心的設計思考。


    True

  • 相关阅读:
    C#学习笔记(委托)
    C#学习笔记(函数——如何在函数中传入传出参数)
    C#学习笔记(隐式和显式转化、枚举类型、结构类型、数组类型和字符串)
    C#学习笔记(流程语句)
    C#学习笔记(基本语法)
    java调用exe,及调用bat不成功的解决办法
    JS数组去重精简版
    根据经纬度坐标获取位置信息(基于百度地图)
    图解算法习题之老王的杂货铺
    JS中的MOD运算
  • 原文地址:https://www.cnblogs.com/chingchangmeng/p/11360192.html
Copyright © 2011-2022 走看看