說明
繼承是物件導向中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 的屬性。
留言
張貼留言