1. 程式人生 > >java 中過載 和重寫的含義

java 中過載 和重寫的含義

package duotai;
/* 繼承是子類繼承父類的方法;
* 重寫(override)是子類重寫父類允許訪問的方法。返回值和引數型別必須相同.(存在於子類和父類中)
*
* 過載(overload)就是允許多個同名但是形參個數或者型別不同的函式方法存在於同一個類裡。(一個類中的不同方法)
* 當類統一呼叫方式時由形參來決定呼叫具體的方法。
* 過載的方法主要通過 形參的個數,引數的資料型別和引數的順序等方面的不同來區分
*/

  // 方法的過載
public class Overload {
    int
add ( int a, int b ){ return (a+b);//返回值是 a+b,返回型別依然是 int型 } double add(double x,double y){ return (x+y);// 返回值 是x+y,返回型別依然是 double } /*以上兩個方法中的 形參a,b,x,y都無實際意義. 方法名(add)相同,資料型別不一樣,這就構成了 方法的 過載*/ }

方法的繼承

package duotai;
//這是一個公共類 father(這裡是父類)
public class Father {
    public
void face() { // 定義一個方法face() System.out.println("這是父類"); } }

這是另一個類Child(這裡看做子類)
//第一種情況:(子類中什麼都不寫)

package duotai;

public class Child extends Father {//這裡涉及了一個extends (繼承的關鍵字)-- 子類繼承 父類
//這裡什麼內容也沒有寫,只是建立了一個類
}

/*
第二種情況:
如果在子類裡面輸出一句話
package duotai;

public class Child extends Father {//這裡涉及了一個extends (繼承的關鍵字)-- 子類繼承 父類
public void face() {
    System.out.println("這是子類");//這裡輸出一句話
}
}
*/
------------------------------

再建立一個測試類(含main()函式)
package duotai;

public class Test {
public static void main(String[] args) {
Father father =new Father();//建立一個物件father
father.face();//呼叫face方法
Child child =new Child();//建立一個物件 child
child.face();//呼叫face方法
//注意:Child類中是什麼都沒有寫的,只是一個空類
}
}

第一種情況輸出結果:  
                   這是父類
               這是父類
第二種情況輸出結果:   這是父類
               這是子類

儘管子類中沒有內容,它依然可以繼承父類的所有內容(屬性和方法).
但是,子類可以改變 繼承父類方法的內容,這就是重寫(也叫覆寫)
子類中除了繼承父類的內容,還有其本身特有的屬性和方法