Python OOP 繼承

markdown #說明 繼承是物件導向中Object-oriented programming,縮寫:OOP 的觀念,參考: 物件導向程式設計 這篇就來實作看看吧~~~ ^^ #操作流程 ##Code ``` #繼承 class Animal: name = '' def __init__(self, name): self.name = name def walk(self): print('walking') def eat(self): print('eating') class Dog(Animal): def __init__(self, name): super().__init__(name) def walk(self): print('{0} using foot walk'.format(self.name)) def eat(self): print('{0} eat bone'.format(self.name)) class fish(Animal): def __init__(self, name): super().__init__(name) def walk(self): print('{0} using hand swim'.format(self.name)) def eat(self): print('{0} eat fish'.format(self.name)) animal = Dog('A') animal.eat() animal.walk() animal = fish('fish') animal.eat() animal.walk() ``` ##程式輸出
##概念 這裡是先有一個物件 Animal, 這個 Animal 物件底下包含了 name 和 walk 和 eat 三個方法 再新增一個物件 Dog ``` class Dog(Animal): ``` 這裡的Dog 則是繼承 Animal 的物件屬性 ,其中Dog 再複寫 walk 和 eat 方法 #大概可以把繼承想像成用物件呼叫上一個物件,可以套用上一個物件的屬性,這樣的行為就是繼承。 ##做一個不要複寫的繼承Code ``` class Animal: name = '' def __init__(self, name): self.name = name def walk(self): print('walking') def eat(self): print('eating') class Dog(Animal): def __init__(self, name): super().__init__(name) # def walk(self): # print('{0} using foot walk'.format(self.name)) # def eat(self): # print('{0} eat bone'.format(self.name)) animal = Dog('A') animal.eat() animal.walk() ``` ##輸出
##概念 這裡就把 walk 和 eat 在dog 裡面的屬性註解,就不覆蓋原先的在 animal 的屬性,直接繼承 animal 的屬性。 ##參考 - 物件導向程式設計 - Python3 教學 #05 (Ch9: Class: 繼承、建構子、多型、封裝、覆載) - DAY08-搞懂Python的OOP

留言