<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 7.3.2 覆寫 子類除了原樣繼承超類的方法,還可以修改繼承來的超類方法,以便以自己的方式行事。 這種在子類中重新定義超類方法的情況是面向對象的又一特色,稱為覆寫(override,或稱重 定義)。 例如,我們來定義另一類特殊的人——娛樂圈明星。娛樂圈明星當然是人,所以他們都 具有 Person 的屬性。但明星們一般都很忌諱被問年齡,他們才不會像普通人那樣直接回答 howOld 問題。因此,我們在定義 Star 類時需要重新實現 howOld 方法,不能直接使用 Person 中定義的 howOld 的代碼。Star 定義如下: ``` class Star(Person): def howOld(self,y): print "You guess?" def setYear(self,y): self.year = y ``` 類 Star 中重新定義了 howOld()方法,將來向 Star 對象發送 howOld 信息時,它就會執行自己 獨特的 howOld 方法。當然,如果向 Star 對象發送 whatName 消息,由于明星們在這個問題 上與常人無異,該對象就會去執行原樣繼承來的超類 Person 中的 whatName 方法。順便指出, 上述 Star 類定義中還定義了一個特殊方法 setYear,這是為了滿足某些明星直接修改自己出生 年份的需求:-),同時也是為了說明子類既可以覆寫從超類繼承來的行為,也可以干脆定義新 的行為。下面是 Star 類的使用例子(假設 Star 類定義已經導入): ``` >>> liu = Star("Liu",1955) >>> liu.whatName() My name is Liu >>> liu.howOld(2013) You guess? ``` 注意,覆寫是指在子類中重新實現超類的方法,該方法的調用界面(參數和返回值)是 不能改變的。另外,子類中覆寫的方法僅適用于子類對象,并不能取代超類中的對應方法。 還用上述例子,當向 Person 類的實例發送 howOld 消息時,仍會執行原來的 howOld 代碼。 有趣的是,由于 Star 對象也是 person 對象,我們甚至能強迫 Star 對象執行 Person 中的 howOld 方法來如實回答年齡,做法如下(參見圖 7.8): ``` >>> Person.howOld(liu,2013) My age in 2013 is 58 ```
                  <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>

                              哎呀哎呀视频在线观看