總網頁瀏覽量

2013年1月26日 星期六

繼承

定義:以既有的類別為基礎宣告另一個類別,新的類別有跟舊的類別同樣的成員變數、成員函數,新的類別可以額外自行宣告自己的成員函數與變數。宣告類別時,在類別名稱後面加上(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();
    }
}

沒有留言:

張貼留言