標籤:
Python 類繼承和多態
在OOP(Object Oriented Programming)程式設計中,當我們定義一個class的時候,可以從某個現有的class 繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Base class、Super class)。
我們先來定義一個class,名為Person,表示人,定義屬性變數 name 及 sex (姓名和性別);定義一個方法:當sex是male時,print he;當sex 是female時,print she
參考如下代碼:
1 class Person: 2 def __init__(self,name,sex): 3 self.name = name 4 self.sex = sex 5 6 def print_heorshe(self): 7 if self.sex == "male": 8 print("he") 9 elif self.sex == "female":10 print("she")11 12 May = Person("May","female")13 Peter = Person("Peter","male")14 15 May.print_heorshe()16 Peter.print_heorshe()
當我們編寫 Student 類的時候,完全可以繼承 Person 類;使用 class subclass_name(baseclass_name) 來表示繼承;
繼承有什麼好處?最大的好處是子類獲得了父類的全部功能。如下Student 類就可以直接使用父類的 print_heorshe 方法
執行個體化Student的時候,子類需要提供父類Person要求的兩個屬性變數 name 及 sex
1 class Person: 2 def __init__(self,name,sex): 3 self.name = name 4 self.sex = sex 5 6 def print_heorshe(self): 7 if self.sex == "male": 8 print("he") 9 elif self.sex == "female":10 print("she")11 12 class Student(Person): # Student 繼承 Person13 pass14 15 May = Student("May","female")16 Peter = Student("Peter","male")17 18 print(May.name,May.sex,Peter.name,Peter.sex)19 May.print_heorshe()20 Peter.print_heorshe()
Python學習(七)物件導向 ——繼承和多態