python-繼承
假設(shè)你想要寫一個程序來記錄學校之中的教師和學生情況。他們有一些共同屬性,比如姓名、年齡和地址。他們也有專有的屬性,比如教師的薪水、課程和假期,學生的成績和學費。
你可以為教師和學生建立兩個獨立的類來處理它們,但是這樣做的話,如果要增加一個新的共有屬性,就意味著要在這兩個獨立的類中都增加這個屬性。這很快就會顯得不實用。
一個比較好的方法是創(chuàng)建一個共同的類稱為 SchoolMember 然后讓教師和學生的類 繼承 這個共同的類。即它們都是這個類型(類)的子類型,然后我們再為這些子類型添加專有的屬性。
使用這種方法有很多優(yōu)點。如果我們增加/改變了 SchoolMember 中的任何功能,它會自動地反映到子類型之中。例如,你要為教師和學生都增加一個新的身份證域,那么你只需簡單地把它加到 SchoolMember 類中。然而,在一個子類型之中做的改動不會影響到別的子類型。另外一個優(yōu)點是你可以把教師和學生對象都作為 SchoolMember 對象來使用,這在某些場合特別有用,比如統(tǒng)計學校成員的人數(shù)。一個子類型在任何需要父類型的場合可以被替換成父類型,即對象可以被視作是父類的實例,這種現(xiàn)象被稱為多態(tài)現(xiàn)象。
另外,我們會發(fā)現(xiàn)在 重用 父類的代碼的時候,我們無需在不同的類中重復它。而如果我們使用獨立的類的話,我們就不得不這么做了。 在上述的場合中,SchoolMember 類被稱為 基本類 或 超類 。而 Teacher 和
Student 類被稱為 導出類 或 子類 。
點擊加載更多評論>>