Python作業二_物件導向


## 物件導向作業

#* 請依據物件導向課程單元中的範例,建立一個Employee父類別,與課程單元相同有name, age屬性,並且有一個抽象方法getSalary(bonus)。
#* Employee類別中的getSalary(bonus)是計算出薪水總和的方法。
#* 請建立ManagerTeacher兩個子類別,分別繼承於父類別Employee
#* Manager的底薪是45000元,Teacher的底薪是40000元,請在實作時將底薪加上bonus

#最後請建立一個老師Mary和主管John的物件,Mary的獎金是2000元,John的獎金是3000元,請各自呼叫getSalary的函式確認結果。
from abc import ABCMeta, abstractmethod
class Employee:
    def __init__(self,name,age):
        self.name = name
        self.age = age;
    @abstractmethod
    def getSalary():
        pass
class Manager(Employee):
    def __init__(self,name,age):
        super().__init__(name,age)#在繼承父類別的子類別中,初始化不需要self
    def getSalary(self,bonus):#在抽象函式的實例中,仍然需要self
         print ( str(45000 + bonus) );
class Teacher(Employee):
    def __init__(self,name,age):
        super().__init__(name,age)
    def getSalary(self,bonus):
        print ( str(40000+bonus))
Mary = Teacher("Mary",20)
Mary.getSalary(2000);
John = Manager("John",30)
John.getSalary(3000);

在寫這題作業的時候,我有兩個bug一直解不了,一個是他說我明明只宣告三個要輸入的參數,但我卻輸入了四個
在我與之前的筆記交叉比對下,發現我的子類別中的  super().__init__(name,age),不小心寫成了  super().__init__(self,name,age) 

 才會有這種問題,還有在   def getSalary(self,bonus):的這裏,我在一開始的時候忘記加了self,所以程式一直噴bug,而後來補上以後就過了><

附上程式的執行結果:



留言

熱門文章