溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2023-03-25 11:14:58 來(lái)源:億速云 閱讀:161 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)”文章吧。

構(gòu)造方法

類(lèi)的構(gòu)造方法是特殊的方法,此方法名稱(chēng)必須和類(lèi)名一致,構(gòu)造不能有返回值 不使用void,不能直接調(diào)用,在類(lèi)對(duì)象實(shí)例化時(shí)自動(dòng)調(diào)用,new 的時(shí)候可以調(diào)用。一般構(gòu)造方法用于類(lèi)對(duì)象實(shí)例化時(shí)的初始化。如果一個(gè)類(lèi)沒(méi)有編寫(xiě)構(gòu)造方法,系統(tǒng)自動(dòng)給此類(lèi)編譯時(shí)添加一個(gè)無(wú)參構(gòu)造方法。如果聲明類(lèi)編寫(xiě)了構(gòu)造方法,系統(tǒng)不再添加無(wú)參構(gòu)造方法,建議編寫(xiě)完構(gòu)造方法時(shí),最好編寫(xiě)一個(gè)無(wú)參構(gòu)造方法。

無(wú)參構(gòu)造

說(shuō)白了就是沒(méi)有參數(shù)的構(gòu)造方法
概念看不懂舉個(gè)例子就清晰了。
聲明一個(gè)類(lèi)A

public class A {
    
}

在類(lèi)A中創(chuàng)建一個(gè)構(gòu)造方法A(),并且打印出一句話(huà)
構(gòu)造方法必須和類(lèi)名一樣

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

新建一個(gè)測(cè)試類(lèi),并在類(lèi)中nuw一個(gè)A類(lèi)的對(duì)象

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

執(zhí)行main方法試試看

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

構(gòu)造方法相當(dāng)于在new對(duì)象是自動(dòng)使用的方法

有參構(gòu)造

有參構(gòu)造就是有參數(shù)的構(gòu)造方法
在類(lèi)A中聲明一個(gè)有參數(shù)的構(gòu)造方法,傳入兩個(gè)String類(lèi)型的參數(shù),a和b

public class A {
    public A() {
    }

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

在測(cè)試類(lèi)中new一個(gè)對(duì)象a時(shí)傳入?yún)?shù)

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

執(zhí)行main方法

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

注意

沒(méi)有構(gòu)造方法的時(shí)候,類(lèi)中隱藏了一個(gè)無(wú)參構(gòu)造。但是創(chuàng)建一個(gè)有參構(gòu)造,隱藏的無(wú)參構(gòu)造就會(huì)消失。那么以后new對(duì)象就只能帶參數(shù)了。所以在建有參構(gòu)造時(shí)一定要?jiǎng)?chuàng)建一個(gè)無(wú)參構(gòu)造方法放那。

類(lèi)的繼承

java語(yǔ)言中,類(lèi)class 是單繼承,多實(shí)現(xiàn)接口。接口interface 是多繼承的。

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

為什么要繼承呢?因?yàn)樽宇?lèi)想要在父類(lèi)的基礎(chǔ)上添加新功能。
子類(lèi)繼承父類(lèi)可以繼承父類(lèi)中的方法和屬性
下面舉例分析:
父類(lèi)是人,子類(lèi)是老司機(jī)。
人的特征有:兩只手,兩只眼,兩只腳,會(huì)吃會(huì)喝
老司機(jī)繼承了人類(lèi)的特征,并且多出了自己會(huì)開(kāi)車(chē)這個(gè)功能。

代碼如下:

這是一個(gè)人 類(lèi),具有以下屬性和功能。

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

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

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

}

這是老司機(jī)類(lèi),繼承了人類(lèi)。并且多了個(gè)會(huì)開(kāi)車(chē)的功能

public class Siji extends Ren {
    public void kai() {
        System.out.println("會(huì)開(kāi)車(chē)");
    }
}

測(cè)試:創(chuàng)建老司機(jī)對(duì)象輸出屬性并調(diào)用方法。

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();
    }
}

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

方法重寫(xiě)、重載

重寫(xiě) 覆蓋:方法名,返回類(lèi)型,形參都一樣。有此種情況的,必須為繼承關(guān)系。
重載:方法名一樣,返回類(lèi)型,形參個(gè)數(shù),類(lèi)型不樣的方法,不一定必須是繼承關(guān)系,同一個(gè)類(lèi)中都可以,比如 構(gòu)造方法重載

重寫(xiě)

因?yàn)樽宇?lèi)不滿(mǎn)意父類(lèi)的方法所以想把它改一下,這就是子類(lèi)重寫(xiě)父類(lèi)的方法。
比如人會(huì)吃會(huì)喝,但是老司機(jī)不喜歡它會(huì)吃這個(gè)功能,想把它改一下,改成會(huì)吃屎。

代碼如下:

老司機(jī)重寫(xiě)人類(lèi)的chi()方法
方法名一定要一樣

public class Siji extends Ren {
    public void kai() {
        System.out.println("會(huì)開(kāi)車(chē)");
    }

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

現(xiàn)在重寫(xiě)運(yùn)行測(cè)試類(lèi)

Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)

重載

有參構(gòu)造和無(wú)參構(gòu)造就是方法重載,一個(gè)類(lèi)中有兩個(gè)名字一樣的方法,但是他們的返回值類(lèi)型和參數(shù)類(lèi)型,參數(shù)個(gè)數(shù)不一樣。
兩個(gè)方法的返回值類(lèi)型和參數(shù)類(lèi)型,參數(shù)個(gè)數(shù),只要有一個(gè)不一樣。但是他們方法名一樣,那么兩個(gè)方法就重載。

以上就是關(guān)于“Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載怎么實(shí)現(xiàn)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI