Python OOP 繼承

說明

繼承是物件導向中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 的屬性。

參考

留言