定義:以既有的類別為基礎宣告另一個類別,新的類別有跟舊的類別同樣的成員變數、成員函數,新的類別可以額外自行宣告自己的成員函數與變數。宣告類別時,在類別名稱後面加上(extends 類別名稱)。
宣告類別時
若不宣告建構子
jdk會預設建構子
以及在建構子裡面附設不傳參數的super()值
package javaproject.oop.inheritance;
class Employee extends Object{//即使不寫,Jdk也會預設extends Object
String name;
String address;
String tel;
int salary=22000;
int age;
public Employee(){
super();
}//即使不寫建構子,jdk也會預設寫建構子,並且打上super
public Employee(int age){
this();//這個是呼叫不傳參數的建構子。this 與super王不見王
this.age=age;
}
public void getDetails(){
System.out.println("name=" + name);
System.out.println("address=" + address);
System.out.println("tel=" + tel);
}
public int getSalary(){
return salary;
}
}
class Engineer extends Employee{
public Engineer(){
super(6);//呼叫老爸的傳一個整數的建構子,
/*如果沒有傳參數,寫成這樣super();
而且老爸類別沒有不傳參數的建構子
public Employee(){
super();
}
那麼就會編譯錯誤,系統找不到
*/
}
public void exec(){
super.address="taichung";
super.name="Louis";
super.tel="04-24525773";
int number=super.getSalary();
super.getDetails();
System.out.println("number=" + number);
}
}
public class CallTestSuperInheritanceEx1 {
public static void main(String[] args) {
Engineer e1 = new Engineer();
e1.exec();
}
}
沒有留言:
張貼留言