java-物件導向程式設計--(3)

啊剛發表於2018-05-11

繼承

  • 是為了重用父類程式碼。兩個類若存在他和她的關係就可以使用繼承。同時繼承也為實現多型做了鋪墊。

多型就是指程式中定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即一個引用變數倒底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在由程式執行期間才能決定。因為在程式執行時才確定具體的類,這樣,不用修改源程式程式碼,就可以讓引用變數繫結到各種不同的類實現上,從而導致該引用呼叫的具體方法隨之改變,即不修改程式程式碼就可以改變程式執行時所繫結的具體程式碼,讓程式可以選擇多個執行狀態,這就是多型性。

多型,簡而言之就是同一個行為具有多個不同表現形式或形態的能力。比如說,有一杯水,我不知道它是溫的、冰的還是燙的,但是我一摸我就知道了。我摸水杯這個動作,對於不同溫度的水,就會得到不同的結果。這就是多型。多型的條件繼承。在多型中必須存在有繼承關係的子類和父類。重寫。子類對父類的默些方法重新定義,在呼叫這些方法的時候就會呼叫子類的方法。向上轉型。在多型中需要將子類的引用賦值給父類物件,只有這樣該引用才能具備技能呼叫父類的方法和子類的方法。

多型的條件

  • 繼承。在多型中必須存在有繼承關係的子類和父類。
  • 重寫。子類對父類的默些方法重新定義,在呼叫這些方法的時候就會呼叫子類的方法。
  • 向上轉型。在多型中需要將子類的引用賦值給父類物件,只有這樣該引用才能具備技能呼叫父類的方法和子類的方法。

練習 實現一個名為Person的類和它的子類Employee,Employee有兩個子類Faculty和Staff。具體要求如下:

  • (1)Person類中的屬性有:姓名name(String型別)、地址address(String型別)、電話號碼telephone(String型別)和電子郵 件地址email(String型別)。
  • (2)Employee類中的屬性有:辦公室office(String型別)、工資wage(double型別)和受僱日期hiredate(String型別)。
  • (3)Faculty類中的屬性有:學位degree(String型別)、級別level(String型別)。
  • (4)Staff類中的屬性有:職務稱號duty(String型別)。

package lianxi;

public class Employee extends Person {

private String office="辦公室";
private double wage=10000;
private String hiredate="三月二十號";
複製程式碼

}

package lianxi;

public class Faculty extends Employee {

private String degree="大專";
private String level="級別";
複製程式碼

}

package lianxi;

public class Person { private String name="姓名"; private String address="地址"; private String telephone="電話"; private String email="電子郵箱";

}

package lianxi;

public class Staff extends Employee {

private String duty="職務稱號";
複製程式碼

}

相關文章