Java的重載與重寫不用我多說了8

重載:
同一個類中包含了兩個或兩個以上方法名相同的方法,但是參數的列表不同,這種情況被稱爲方法重載(overload)。
返回值類型、修飾符等,與方法重載沒有關係,只與參數列表有關。
如:

public void Overload(int a, int b) {
}
public void Overload(int a, float b) {
}
public void Overload(int a, int b,int c) {
}
public int Overload(int a, int b) {  //這不叫重載,同時存在會報錯
return a+b;
}
private void Overload(int a, int b) { //這也不叫重載
}

Java在調用方法時,會根據參數的不同,自動選擇合適的重載函數,不會出現錯誤。
重寫:
重寫概念是相對於兩個類而言的,在子類中創建了一個與父類中相同名稱、相同返回值類型、相同參數列表的方法,只是方法體中的實現不同,用來實現不同於父類的功能,這種方式被稱爲方法重寫(override),又稱爲方法覆蓋。

例如:@Override下即爲重寫

public class Abstract {

    //定義形狀抽象類
    public abstract class Shape {
        public int width;   // 長度
        public int height; // 高度,不是寬度。

        public Shape(int width, int height) {
            this.width = width;
            this.height = height;
        }
        // 定義抽象方法,計算面積area,定義抽象類周長length
        public abstract double area(); 
    }
    
    //又定義抽象長方形類,繼承形狀類
    public abstract class Square extends Shape{ 
        public Square (int width,int height){
            super(width, height );
        }

        @Override
        public double area() {  //重寫父類抽象方法
            return width*height;
        }

注意:聲明爲 final 的方法不能被重寫,父類的成員方法只能被它的子類重寫。

區別:
其實理解了這倆的概念自然就知道區別了,重載是在一個類中多個同名方法;重寫是子類繼承父類的方法,將其重新定義,賦予新功能。
在這裏插入圖片描述

Java小白修煉手冊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章