```通過繼承創(chuàng)建的新類稱為“子類”或“派生類”。
被繼承的類稱為“基類”、“父類”或“超類”。
繼承概念的實(shí)現(xiàn)方式主要有2類:實(shí)現(xiàn)繼承、接口繼承。
1、實(shí)現(xiàn)繼承是指使用基類的屬性和方法而無需額外編碼的能力;
2、接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實(shí)現(xiàn)的能力(子類重構(gòu)爹類方法);
## 最簡單的繼承
class person(object):
def talk(self):
print('talk english....')
class ypeople(person):
# def talk(self): #要是沒有重新定義talk會調(diào)用父類里的talk
print("talk chinese")
def walk(self):
print("yperson is runing....")
b=ypeople()
b.talk()
b.walk()
## 先繼承再重構(gòu)
class person(object): 父類
def __init__(self,name,age):
self.name=name
self.age=age
self.sex="normal"
def talk(self):
print('talk english....')
class bperson(object):
pass
class ypeople(person):
def __init__(self,name,age,strength): #先繼承,再重構(gòu)
person.__init__(self,name,age)
self.www="www"
print(self.name,self.age,self.sex)
def talk(self): #要是沒有重新定義talk會調(diào)用父類里的talk
person.talk(self) #繼承方法(一般不這么做,重復(fù)執(zhí)行)
print("talk chinese")
def walk(self):
print("yperson is working...")
b=ypeople("王東",30,"strong")
b.talk()
b.walk()
## 類的繼承運(yùn)用例子
class School(object):
""""學(xué)校成員基類"""
number=0
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
self.enroll() #在基類里內(nèi)部調(diào)用(相當(dāng)于子類默認(rèn)調(diào)用)
def enroll(self):
"""注冊"""
print("%s歡迎加入我們學(xué)院!"%self.name)
School.number+=1 #把值賦給公有屬性(變成全局的)直接self.number只是在實(shí)例里面創(chuàng)建了一個變量number=0然后加1
def tell(self):
"""打印自己的信息"""
print("------info:%s-------"%self.name)
for k,v in self.__dict__.items():
print("\t",k,v)
print("------end-------" )
def __del__(self): # 析構(gòu)
print("[%s] 被開除了!"%self.name)
School.number-=1
class newschool(object):
def openschool(self,addr):
print("open in the %s"%addr)
class Teacher(School,newschool): # 多繼承(繼承多個類)
"""講師類"""
def __init__(self,name,age,sex,salary,course):
#School.__init__(self,name,age,sex) #經(jīng)典類
super(Teacher,self).__init__(name,age,sex) # 新式類
self.salary=salary
self.coures=course
def teaching(self):
print("Teacher [%s] is teaching [%s]"%(self.name,self.coures))
class Student(School):
"""學(xué)生類"""
def __init__(self,name,age,sex,course,fee):
School.__init__(self,name,sex,age)
self.course=course
self.fee=fee
self.amount=0
def pay_fee(self,amount):
print("student [%s] has just paid [%s]"%(self.name,self.amount))
self.amount+=amount
t1=Teacher("王肖",29,'F*M',20000,"Python")
s1=Student("王鼎",26,"N/A",'Python',30000)
s2=Student("蘇曉",22,"F","Python",5000)
print(School.number) #輸出總共創(chuàng)建次數(shù)
print(t1.number) #輸出t1實(shí)例本身創(chuàng)建次數(shù)
print(School.number) #輸出總共創(chuàng)建次數(shù)
del s1 #刪除s1
print(School.number) #輸出總共創(chuàng)建次數(shù)
a=s1.__dict__ #把信息轉(zhuǎn)換成列表
print(a)
t1.tell()
t1.openschool("上海") #多繼承測試
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為羅定企業(yè)提供專業(yè)的網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計,羅定網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。