溫馨提示×

溫馨提示×

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

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

java是如何區(qū)分重載和重寫

發(fā)布時(shí)間:2021-12-21 10:51:41 來源:億速云 閱讀:112 作者:柒染 欄目:大數(shù)據(jù)

java是如何區(qū)分重載和重寫,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

這個(gè)問題比較簡單,適合小白,主要區(qū)分方法的重載和重寫。有時(shí)候經(jīng)常搞混,下面就是為了很好的去整理區(qū)分一下。

一個(gè)類中,可以有很多的構(gòu)造方法,而且名字相同都是類名,其實(shí)這些方法就已經(jīng)構(gòu)成了重載。重寫也就是說,在一個(gè)類中,可以有很多名字相同的不同方法。現(xiàn)在一個(gè)問題來了,就是java是如何區(qū)分這些方法的呢?

方法重載

其實(shí)區(qū)分重載,有一個(gè)很簡便的方法,那就是每一個(gè)方法有一個(gè)獨(dú)一無二的參數(shù)列表。

public class Son extends Father{
    int fff(){
       return 0;
    }
    String fff(int x,String y){
       return "";
     }
    void fff(String y,int x){};

    public static void main(String[] args) {
        Son son=new Son();
    }
}
 

由以上代碼可以看到:

1、參數(shù)個(gè)數(shù)不同可以區(qū)分

2、參數(shù)的順序不同可以區(qū)分。

注意;返回值類型不同不能區(qū)分。

為什么返回值類型不同不能區(qū)分呢?這是因?yàn)橛袝r(shí)候我們定義的方法,我們只是想要簡單地去調(diào)用,而不想去獲取他的返回值。

比如:在調(diào)用fff()時(shí),只需要調(diào)用fff()或者是fff(1,"數(shù)據(jù)")而不去獲取他的返回值。這樣jvm是無法區(qū)分的。

 

方法重寫

 
先看概念:

1、在子類中可以根據(jù)需要對從基類中繼承來的方法進(jìn)行重寫。

2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數(shù)列表和返回類型。(注:返回值可以為父類中返回值的子類型.參數(shù)若為子類,則不是重寫是重載)

3、重寫方法不能使用比被重寫的方法更嚴(yán)格的訪問權(quán)限。

4、重寫方法不能聲明拋出比被重寫方法范圍更大的異常類型。

總結(jié):重寫是子類對所繼承父類相同方法的一種更改,這個(gè)更改需要遵循格式按照父類的格式,訪問權(quán)限,拋出異常等等,都在父類方法控制范圍內(nèi),內(nèi)部具體實(shí)現(xiàn)可以實(shí)現(xiàn)不同的效果。

通俗一點(diǎn)來說:重寫就是對父類的的同一個(gè)方法的改寫,但是別人怎么知道你這是重寫,不是添加的新方法?這就要求格式必須跟父類相同,別人一看,呀,他倆長的一模一樣(指的上面2,3,4規(guī)則),肯定是重新寫了,就是重寫。

 
看一個(gè)例子:

定義父類:

public class Father extends Grandpa {
    String add(int a,int b){
        int c=a+b;
        return ""+c;
    }
}
 

定義子類

public class Son extends Father{
    String add(int a,int b){
        int c=a+b;
        return ""+c;
    }
    public static void main(String[] args) {
        Son son=new Son();
    }
}

這樣就完成了方法的重寫。

關(guān)于java是如何區(qū)分重載和重寫問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

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

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

AI