首頁 > 軟體

Java物件導向之繼承、構造方法、重寫、過載

2023-03-25 06:02:08

構造方法

類的構造方法是特殊的方法,此方法名稱必須和類名一致,構造不能有返回值 不使用void,不能直接呼叫,在類物件範例化時自動呼叫,new 的時候可以呼叫。一般構造方法用於類物件範例化時的初始化。如果一個類沒有編寫構造方法,系統自動給此類編譯時新增一個無參構造方法。如果宣告類編寫了構造方法,系統不再新增無參構造方法,建議編寫完構造方法時,最好編寫一個無參構造方法。

無參構造

說白了就是沒有引數的構造方法
概念看不懂舉個例子就清晰了。
宣告一個類A

public class A {
    
}

在類A中建立一個構造方法A(),並且列印出一句話
構造方法必須和類名一樣

public class A {
    public A(){
        System.out.println("構造方法A()");
    }
}

新建一個測試類,並在類中nuw一個A類的物件

public class Test {
    public static void main(String[] args) {
        A a = new A();
    }
}

執行main方法試試看

構造方法相當於在new物件是自動使用的方法

有參構造

有參構造就是有引數的構造方法
在類A中宣告一個有引數的構造方法,傳入兩個String型別的引數,a和b

public class A {
    public A() {
    }

    public A(String a, String b) {
        System.out.println(a + b);
    }
}

在測試類中new一個物件a時傳入引數

public class Test {
    public static void main(String[] args) {
        A a = new A("aaa", "bbb");
    }
}

執行main方法

注意

沒有構造方法的時候,類中隱藏了一個無參構造。但是建立一個有參構造,隱藏的無參構造就會消失。那麼以後new物件就只能帶引數了。所以在建有參構造時一定要建立一個無參構造方法放那。

類的繼承

java語言中,類class 是單繼承,多實現介面。介面interface 是多繼承的。

為什麼要繼承呢?因為子類想要在父類別的基礎上新增新功能。
子類繼承父類別可以繼承父類別中的方法和屬性
下面舉例分析:
父類別是人,子類是老司機。
人的特徵有:兩隻手,兩隻眼,兩隻腳,會吃會喝
老司機繼承了人類的特徵,並且多出了自己會開車這個功能。

程式碼如下:

這是一個人 類,具有以下屬性和功能。

public class Ren {
    public final String shou = "兩隻手";
    public final String jiao = "兩隻腳";
    public final String yan = "兩隻眼";

    public void chi() {
        System.out.println("會吃");
    }

    public void he() {
        System.out.println("會喝");
    }

}

這是老司機類,繼承了人類。並且多了個會開車的功能

public class Siji extends Ren {
    public void kai() {
        System.out.println("會開車");
    }
}

測試:建立老司機物件輸出屬性並呼叫方法。

public class Test {
    public static void main(String[] args) {
        Siji b = new Siji();
        System.out.println(b.jiao);
        System.out.println(b.shou);
        System.out.println(b.yan);
        b.chi();
        b.he();
        b.kai();
    }
}

方法重寫、過載

重寫 覆蓋:方法名,返回型別,形參都一樣。有此種情況的,必須為繼承關係。
過載:方法名一樣,返回型別,形參個數,型別不樣的方法,不一定必須是繼承關係,同一個類中都可以,比如 構造方法過載

重寫

因為子類不滿意父類別的方法所以想把它改一下,這就是子類重寫父類別的方法。
比如人會吃會喝,但是老司機不喜歡它會吃這個功能,想把它改一下,改成會吃屎。

程式碼如下:

老司機重寫人類的chi()方法
方法名一定要一樣

public class Siji extends Ren {
    public void kai() {
        System.out.println("會開車");
    }

    public void chi() {
        System.out.println("會吃屎");
    }
}

現在重寫執行測試類

過載

有參構造和無參構造就是方法過載,一個類中有兩個名字一樣的方法,但是他們的返回值型別和引數型別,引數個數不一樣。
兩個方法的返回值型別和引數型別,引數個數,只要有一個不一樣。但是他們方法名一樣,那麼兩個方法就過載。

到此這篇關於Java物件導向之繼承、構造方法、重寫、過載的文章就介紹到這了,更多相關Java物件導向內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com