Python學習第二天:面向物件之繼承
阿新 • • 發佈:2018-11-03
繼承:實現程式碼的重用,相同的程式碼不需要重複的編寫。
1.繼承的語法
''' 專業術語: Dog類是Animal類的子類,Animal類是Dog類的父類,Dog類從Animal類繼承 Dog類是Animal類的派生類,Animal類是Dog類的基類,Dog類從Animal類派生 ''' class Animal: def eat(self): print("吃") def drink(self): print("喝") def run(self): print("跑") def繼承的語法sleep(self): print("睡") class Dog(Animal): def bark(self): print("汪汪汪") class Xiaotianquan(Dog): ###繼承的傳遞性 def fly(self): print("神仙") wangcai = Xiaotianquan() wangcai.eat() wangcai.run() wangcai.drink() wangcai.sleep() wangcai.bark() wangcai.fly()
2.繼承中方法的重寫
''' 專業術語: Dog類是Animal類的子類,Animal類是Dog類的父類,Dog類從Animal類繼承 Dog類是Animal類的派生類,Animal類是Dog類的基類,Dog類從Animal類派生 ''' class Animal: def eat(self): print("吃") def drink(self): print("喝") def run(self): print("跑") def sleep(self):View Codeprint("睡") class Dog(Animal): def bark(self): print("汪汪汪") class XiaoTianQuan(Dog): ###繼承的傳遞性 def fly(self): print("神仙") def run(self): print("跑著跑著就飛了") ###方法的重寫 doudou = XiaoTianQuan() doudou.eat() doudou.run() doudou.drink() doudou.sleep() doudou.bark() doudou.fly()
3.擴充套件父類的方法
''' 專業術語: Dog類是Animal類的子類,Animal類是Dog類的父類,Dog類從Animal類繼承 Dog類是Animal類的派生類,Animal類是Dog類的基類,Dog類從Animal類派生 ''' class Animal: def eat(self): print("吃") def drink(self): print("喝") def run(self): print("跑") def sleep(self): print("睡") class Dog(Animal): def bark(self): print("汪汪汪") class XiaoTianQuan(Dog): ###繼承的傳遞性 def fly(self): print("神仙") def run(self): print("跑著跑著就飛了") ###方法的重寫 def bark(self): print("--------------------------") super().bark() ###使用super()呼叫父類中方法,從而實現擴充套件父類 #Dog.bark(self) ###使用父類名.方法(self) 呼叫父類中的方法(不推薦使用) print("##########################") doudou = XiaoTianQuan() doudou.eat() doudou.run() doudou.drink() doudou.sleep() doudou.bark() doudou.fly()View Code
4.多繼承
注意事項:如果父類之間存在同名的屬性或方法,應該儘量避免使用多繼承
class Aaa: def test1(self): print("我是爸爸1") class Bbb: def test2(self): print("我是爸爸2") class Ccc(Aaa,Bbb): #多繼承可以讓子類物件,同時具有多個父類的屬性和方法 pass #建立子類物件 c = Ccc() c.test1() c.test2()View Code