11python繼承

要編寫的類是另一個現(xiàn)成類的特殊版本,可使用繼承繼 。
一個類繼承繼 另一個類時,它將自動獲得另一個類的所有屬性和方法;
原有的 類稱為父類父 ,而新類稱為子類子 。
子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法。

class Car():#Car類的代碼
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive_name(self):
        long_name=str(self.year)+ ' '+ self.make+ ' '+ self.model
        return long_name.title()
    def read_odometer(self):
        print("This car has "+str(self.odometer_reading)+"miles on it.")
    def update_odometer(self,mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading=mileage
        else:
            print("You can't roll back an odometer!")
    def increment_odometer(self,miles):
        self.odometer_reading+=miles
class ElectrivCar(Car):#定義子類時,必須在括號內(nèi)指定父類的名稱;父類必須包含在當前文件中,且位于子類前面。
    def __init__(self,make,model,year):
        super().__init__(make,model,year)#初始化父類屬性,,這行代碼讓 Python 調(diào)用 ElectricCar 的父類的方法 __init__() ,讓 ElectricCar 實例包含父類的所有屬性。父類也稱為 超類 ( superclass ),名稱 super
    
my_tesla = ElectrivCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
print("*********************")

讓一個類繼承另一個類后,可添加區(qū)分子類和父類所需的新屬性和方法,

class Car():
    --snip--      

class ElectrivCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery_size=70#添加了新屬性 self.battery_size ,并設(shè)置其初始值
    def describe_battery(self):
        print("This car has a "+str(self.battery_size)+"-kwh battery.")

在使用父類的方法,只要它不符合子類模擬的實物的行為,都可對其進行重寫:

def ElectrivCar(Car):
--snip--
       def fill_gas_tank():#對方法進行重新
        print("This car donesn't need a gas tank!")

使用繼承時,可讓子類保留從父類哪里繼承而來的長處,并提出不需要的短處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 編寫類時,并非總是要從空白開始。如果你要編寫的類是另一個現(xiàn)成類的特殊版本,可使用繼承 。一個類繼承另一個類時,它將...
    一日歌閱讀 341評論 0 1
  • 如果要編寫的類是另一個類的特殊版本時,那么就可以使用繼承 。原有的類稱為父類 , 新類稱為子類 。 子類繼承了父類...
    deniro閱讀 993評論 0 7
  • 繼承 目標 單繼承 多繼承 面向?qū)ο笕筇匦?封裝 根據(jù) 職責 將 屬性 和 方法 封裝 到一個抽象的 類 中 繼...
    ottox閱讀 208評論 0 0
  • 1. 繼承的概念:子類有父類的所有的 方法 和 屬性 2. 子類繼承父類,可以直接享受父類已經(jīng)封裝好的方法,不需...
    測試探索閱讀 190評論 0 0
  • 作者:Python空間來源:掘金 概念 對于「繼承」的概念,我們先來看在《維基百科》中的定義: 繼承(Inheri...
    派派森森閱讀 323評論 0 1

友情鏈接更多精彩內(nèi)容