1. 程式人生 > >類的繼承和類繼承運用

類的繼承和類繼承運用

run sch 方式 沒有 自己的 共創 tel clas obj

```通過繼承創建的新類稱為“子類”或“派生類”。 被繼承的類稱為“基類”、“父類”或“超類”。 繼承概念的實現方式主要有2類:實現繼承、接口繼承。 1、實現繼承是指使用基類的屬性和方法而無需額外編碼的能力; 2、接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力(子類重構爹類方法); ## 最簡單的繼承 class person(object): def talk(self): print(‘talk english....‘) class ypeople(person): # def talk(self): #要是沒有重新定義talk會調用父類裏的talk print("talk chinese") def walk(self): print("yperson is runing....") b=ypeople() b.talk() b.walk() ## 先繼承再重構 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): #先繼承,再重構 person.__init__(self,name,age) self.www="www" print(self.name,self.age,self.sex) def talk(self): #要是沒有重新定義talk會調用父類裏的talk person.talk(self) #繼承方法(一般不這麽做,重復執行) print("talk chinese") def walk(self): print("yperson is working...") b=ypeople("王東",30,"strong") b.talk() b.walk() ## 類的繼承運用例子 class School(object): """"學校成員基類""" number=0 def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex self.enroll() #在基類裏內部調用(相當於子類默認調用) def enroll(self): """註冊""" print("%s歡迎加入我們學院!"%self.name) School.number+=1 #把值賦給公有屬性(變成全局的)直接self.number只是在實例裏面創建了一個變量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): # 析構 print("[%s] 被開除了!"%self.name) School.number-=1 class Teacher(School): """講師類""" def __init__(self,name,age,sex,salary,course): School.__init__(self,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): """學生類""" 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) #輸出總共創建次數 print(t1.number) #輸出t1實例本身創建次數 print(School.number) #輸出總共創建次數 del s1 #刪除s1 print(School.number) #輸出總共創建次數 a=s1.__dict__ #把信息轉換成列表 print(a) t1.tell()

類的繼承和類繼承運用