繼承示例 - 請考慮以下兩個類
老師班:
class Teacher {
private String name;
private double salary;
private String subject;
public Teacher (String tname) {
name = tname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getSubject() {
return subject;
}
}
OfficeStaff 類:
class OfficeStaff{
private String name;
private double salary;
private String dept;
public OfficeStaff (String sname) {
name = sname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getDept () {
return dept;
}
}
- 這兩個類共享很少的共同屬性和方法。因此重複程式碼。
- 建立一個包含常用方法和屬性的類。
- Teacher 和 OfficeStaff 類可以繼承 Employee 類下面的所有常用屬性和方法。
員工類:
class Employee{
private String name;
private double salary;
public Employee(String ename){
name=ename;
}
public String getName(){
return name;
}
private double getSalary(){
return salary;
}
}
- 向它新增單個方法和屬性一旦我們建立了一個定義一組物件共有的屬性的超類,它就可以用來建立任意數量的更具體的子類
- 可以從 Employee 類生成任何類似的類,如 Engineer,Principal 作為子類。
- 父類稱為超類,繼承類是子類
- 子類是超類的專用版本 - 它繼承了超類定義的所有例項變數和方法,並新增了自己的唯一元素。
- 儘管子類包含其超類的所有成員,但它無法訪問已宣告為私有的超類成員。
- 超類的引用變數可以分配給對從該超類派生的任何子類的引用,即 Employee emp = new Teacher();