<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                上節課我們學習了什么是面向對象。在面向對象里有類和實例兩個概念。類是模板,實例是按照這些模板生成的一個個具體對象。 ## 什么是繼承 這節課我們來學習繼承和重寫,咱們還是看生活中的例子。我們知道,世間的各種生物都是有細胞演化過來的。咱們來推演一下這個過程(參考資料,為了簡化編程模型,相關生物概念做了一些模糊: https://zh.wikipedia.org/wiki/%E7%94%9F%E5%91%BD%E6%BC%94%E5%8C%96%E5%8E%86%E7%A8%8B https://www.coursera.org/lecture/shengwu-yanhua/12-2-sheng-ming-qi-yuan-de-jie-duan-shang-1E923) ![](https://pic2.zhimg.com/80/bfa1e4329632294d000adac6548043f5_hd.jpg) 在大約40億年前,地球產生了細胞,從此產生了生命。細胞具有大小、年齡屬性;細胞的移動方式游動。 在大約10億年前,細胞演化出了兩種形態,植物和動物,我們來分別看看一下這兩種生物。 植物因為是從細胞演化(繼承)過來的,所以也擁有大小和年齡的屬性。植物的移動方式我們人類比較難觀察到,植物通過根從土壤里吸收養分輸送到葉子。這個過程我們簡化成叫吸收養分吧。 動物也是從細胞演化(繼承)過來的,所以也擁有大小和年齡的屬性。動物的移動方式有很多種,我們就簡化成走吧。 在上面的例子里,細胞是一個類,植物也是一個類。細胞和植物之間就是繼承關系。植物繼承自細胞;同理,動物也是繼承自細胞。 下面,我們用python代碼來演示一下繼承。 ## python中的類繼承 ![](https://pic2.zhimg.com/v2-2701f2f5ebc1b623ed8684f4a2ed65bd_1200x500.jpg) 首先,我們定義一個細胞類: ~~~ class Cell: def __init__(self): self.size = 0 self.age = 1 def move(self): return '游動' ~~~ 那我們怎么來表達植物繼承自細胞呢?看代碼: ![](http://i.epochtimes.com/assets/uploads/2016/04/1604172216522669-600x400.jpg) ~~~ class Plant(Cell): pass plant = Plant() print(plant.size) print(plant.move()) ~~~ 我們在類的定義中,傳入我們要繼承的類就可以了。一個類還可以繼承多個類,每個類之間用空格分開。 因為Plant 繼承了 Cell ,所以plant就自動擁有了 size、age屬性和move方法。 咱們再來寫一下動物的代碼: ![](http://pic.90sjimg.com/design/00/64/37/06/59265caa7607d.png) ~~~ class Animal(Cell): pass animal = Animal() animal.size = 1 print(animal.size) print(animal.move()) ~~~ ## 方法重寫 我們知道,每個實例有自己的屬性,我們單獨更改某個屬性的值。那我們怎么更改實例的方法呢? 上面說了,植物的移動方式是*吸收養分*、動物的移動方式是*走*。咱們怎么讓植物和動物擁有自己的*move*方法呢?我們只需要重新在`Plant`和`Animal`類里定義一下這個方法就好了。看代碼: ~~~ class Plant(Cell): def move(self): return '吸收養分' class Animal(Cell): def move(self): return '走' plant = Plant() print(plant.move()) animal = Animal() print(animal.move()) ~~~ 怎么樣?是不是很簡單。面向對象是很核心的編程概念,下節課,我們通過一些案例來看在具體的項目中怎么使用面向對象。 **阿達老師-孩子身邊的編程專家**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看