繼承和子類的定義


一、繼承

  繼承允許開發者基於已有的類創建新的類。
  如果一個類C1通過繼承已有類C而創建,則將C1稱作子類(subclass),將C稱做基類、父類或超類(base class、super class)。子類會繼承父類中定義的所有屬性和方法,另外也能夠在子類中增加新的屬性和方法。
  如果一個子類只有一個父類,則將這種繼承關系稱為單繼承;如果一個子類有兩個或更多父類,則將這種繼承關系稱為多重繼承。
 
二、子類的定義
定義子類時需要指定父類,其語法格式為:
   class 子類名(父類名1, 父類名2, …, 父類名M):
  語句1
  語句2
  …
  語句N
當M等於1時,則為單繼承;當M大於1時,則為多重繼承。
 
例:繼承示例。
class Person: #定義Person類 
    def SetName(self, name): #定義SetName方法 
        self.name=name #將self對應對象的name屬性賦為形參name的值 
class Student(Person): #以Person類作為父類定義子類Student 
    def SetSno(self, sno): #定義SetSno方法 
        self.sno=sno #將self對應對象的sno屬性賦為形參sno的值    
class Teacher(Person): #以Person類作為父類定義子類Teacher 
    def SetTno(self, tno): #定義SetTno方法 
        self.tno=tno #將self對應對象的tno屬性賦為形參tno的值 
class TA(Student,Teacher): #以Student類和Teacher類作為父類 #定義子類TA 
    def SetTeacher(self, teacher): #定義SetTeacher方法 
        self.teacher=teacher #將self對象的teacher屬性賦為形參 #teacher的值
if __name__=='__main__': 
    stu=Student() #定義Student類對象stu 
    stu.SetSno('1810100') #調用Student類中定義的SetSno方法 
    stu.SetName('李曉明') #調用Student類從Person類繼承過來的SetName #方法 
    print('學號:%s,姓名:%s'%(stu.sno,stu.name)) #輸出學號和姓名 
    t=Teacher() #定義Teacher類對象t 
    t.SetTno('998012') #調用Teacher類中定義的SetTno方法 
    t.SetName('馬紅') #調用Teacher類從Person類繼承過來的SetName方法 
    print('教工號:%s,姓名:%s'%(t.tno,t.name)) #輸出教工號和姓名
學號:1810100,姓名:李曉明
教工號:998012,姓名:馬紅
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM