1. 程式人生 > >python基礎學習日誌day6-類的繼承

python基礎學習日誌day6-類的繼承

del pytho roo ict sel self eache 但是 n)

繼承:承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類.

    繼承的過程,就是從一般到特殊的過程.要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現

    繼承概念的實現方式主要有2類:實現繼承、接口繼承.

    實現繼承是指使用基類的屬性和方法而無需額外編碼的能力

    接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力(子類重構爹類方法)

組合方式實現多繼承

# -*- coding:utf-8 -*-
__author__ = shisanjun

class School(object):
    
def __init__(self,name): self.name=name def sayhi(self): print("school name",self.name) class SchoolMember(object): menber=0 #公有屬性 def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex self.enrool() #每個子類都運行 def enrool(self):
print(%s has enroll %self.name) SchoolMember.menber+=1 #累計增加,不能寫this.menber+=menber這樣寫只會在子類調用的時候加1,沒有傳到父類 def tell(self): #打印所有用戶信息,實現如下 print("-----info %s-----" %self.name) for v,k in self.__dict__.items(): #返回子類的 所有成員屬性的字典 print("%s:\t%s" %(v,k)) def
__del__(self): print("%s has del" %self.name) SchoolMember.menber-=1 class Teacher(SchoolMember): def __init__(self,name,age,sex,salary,course,school): #SchoolMember.__init__(self,name,age,sex) #經典類寫法==SchoolMember.__init__(self,name,age,sex) super(Teacher,self).__init__(name,age,sex ) #新類式類寫法 self.salary=salary self.course=course self.school=school #組合繼承,實現多繼承 def teach(self): print("school:%s teacher course %s" %(self.school.name,self.course)) class Student(SchoolMember): def __init__(self,name,age,sex,tuition,course): SchoolMember.__init__(self,name,age,sex) self.tuition=tuition self.course=course def pay_tuition(self): print("the student pay ",self.tuition) school=School("南京大學") t=Teacher("shi",23,"F",15000,"python",school) #組合繼承,實現多繼承 s=Student("san",26,M,3000,"python") t.teach() """ shi has enroll san has enroll school:南京大學 teacher course python shi has del san has del """

python基礎學習日誌day6-類的繼承