上一篇: 類屬性案例練習 | 手把手教你入門Python之六十二 下一篇: 繼承的注意事項類屬性案例練習 | 手把手教你入門Python之六十四 本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程 《Python入門2020最新大課》 ,主講人姜偉。
繼承的基本使用
面向對象程式設計有三大特性:封裝、繼承、多态。
封裝:打包,函數是對語句的封裝,類是對函數和變量的封裝
# 一個一個的語句
def test():
a = 23 # 指派語句
a += 3 # 算數運算符表達式語句
print('hello')
print('good')
class Person(object):
type = '人類'
def __init__(self):
pass
def eat(self):
pass
繼承:類和類之間可以人為手動的建立父子關系,父類的屬性和方法,子類可以使用。
在現實⽣活中,繼承⼀般指的是⼦⼥繼承⽗輩的财産,⽗輩有的财産,⼦⼥能夠直接使⽤。
多态:是一種技巧,提高代碼的靈活度。
程式⾥的繼承
繼承是⾯向對象軟體設計中的⼀個概念,與多态、封裝共為⾯向對象的三個基本特征。繼承可以使得⼦類具有⽗類的屬性和⽅法或者重新定義、追加屬性和⽅法等。

- 在程式中,繼承描述的是多個類之間的所屬關系。
- 如果⼀個類A⾥⾯的屬性和⽅法可以複⽤,則可以通過繼承的⽅式,傳遞到類B⾥。
- 那麼類A就是基類,也叫做⽗類;類B就是派⽣類,也叫做⼦類。
class Animal:
def __int__(self):
pass
"""動物類"""
def sleep(self):
print('正在睡覺')
class Dog(Animal):
"""Dog類繼承⾃Animal類"""
def __init__(self):
pass
class Cat(Animal): # 定義類時,在括号後⾯傳⼊⽗類的類名,表示⼦類繼承⽗類
"""Cat類繼承⾃Animal類"""
def __int__(self):
pass
# Dog 和 Cat 都繼承⾃Animal類,可以直接使⽤Animal類⾥的sleep⽅法
dog = Dog()
dog.sleep()
cat = Cat()
cat.sleep()
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = age
def sleep(self):
print(self.name + '正在睡覺')
class Dog(Animal):
def bark(self):
print(self.name + '正在叫')
class Student(Animal):
def study(self):
print(self.name + '正在好好學習')
# Dog() 調用 __new__ 方法,再調用 __init__ 方法
# Dog 裡沒有 __new__ 方法,會檢視父類是否重寫了 __new__ 方法
# 父類裡也沒有重寫 __new__ 方法,查找父類的父類(object)
# 調用 __init__ 方法,Dog類沒有實作,會自動找到 Animal 父類,需要添加兩個參數
# d1 = Dog()
# print(d1) # 出錯
d1 = Dog('大黃', 3)
print(d1.name) # 大黃 父類裡定義的屬性,子類可以直接使用
d1.sleep() # 大黃正在睡覺 父類的方法子類執行個體對象可以直接調用
d1.bark() # 大黃正在叫
s1 = Student('小明', 18)
s1.sleep() # 小明正在睡覺
s1.study() # 小明正在好好學習