day24 01 初识继承
day24 01 初識繼承
?
面向?qū)ο蟮娜筇匦?#xff1a;繼承,多態(tài),封裝
?
一、繼承的概念
繼承:是一種創(chuàng)建新類的方式,新建的類可以繼承一個或者多個父類,父類又可稱基類或超類,新建的類稱為派生類或者子類
class A: # 父類,基類,超類pass class B: # 父類,基類,超類pass class A_son(A,B): # 子類,派生類pass class AB_son(A,B): # 子類,派生類pass- 一個類可以被多個類繼承,先有父類才有子類
- 一個類可以繼承多個父類----只在python里面才可以,其他語言不可以
注意:從父類不能知道自己將會被哪個類繼承,但是從子類肯定可以知道自己的父類,這是從子類像父類指向單方向線程
?
二、父類的查看方法
類似于對像可以使用_dict_方法查看屬性,子類也可以使用_bases_方法查看它的父類
class A: # 父類,基類,超類pass class B: # 父類,基類,超類pass class A_son(A): # 子類,派生類pass class B_son(A,B): # 子類,派生類pass class AB_son(A,B): # 子類,派生類pass print(A_son.__bases__) print(B_son.__bases__) print(AB_son.__bases__) print(A.__bases__) print(B.__bases__)運行結(jié)果:
C:\Users\sku1-1\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/sku1-1/PycharmProjects/untitled/day24 01 初識繼承.py" (<class '__main__.A'>,) (<class '__main__.A'>, <class '__main__.B'>) (<class '__main__.A'>, <class '__main__.B'>) (<class 'object'>,) (<class 'object'>,)Process finished with exit code 0從上面的運行結(jié)果可以看到,特別的父類A和B的父類都是‘object’,如果沒有繼承父類,就默認(rèn)繼承‘object’,這也是python3的新式類
?
三、繼承表達(dá)的關(guān)系:什么是什么的關(guān)系
? ? ?? 只有是兩個類之間才會產(chǎn)生繼承的關(guān)系,兩個類之間存在一些共同的抽象的東西,將這些共同的東西抽象出來就可以成為這兩個類的父類
以之前的人狗大戰(zhàn)的游戲為例,里面的人物角色與狗的角色,定義它們的類的時候,里面有一些屬性是相同的,比如:name,blood,aggr,而且狗和人都是動物,這樣就可以抽象出它們的父類---animal,參考以下代碼:
class animal: # 父類def __init__(self,name,blood,aggr):self.name=nameself.blood=bloodself.aggr=aggr class dog(animal): # 子類def bite(self,someone):someone.blood-=self.aggr class someone(animal): # 子類def attack(self,dog):dog.blood -=self.aggrdog1 = dog('溜溜球',200,500) print(dog1.name) person1 = someone('王昭君',300,500) print(person1.name)運行結(jié)果:
溜溜球 王昭君?
轉(zhuǎn)載于:https://www.cnblogs.com/wxm422562/p/10887355.html
總結(jié)
以上是生活随笔為你收集整理的day24 01 初识继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 密码学题库
- 下一篇: 华为交换机在Telnet登录下自动显示接