最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入了解Java方法的重載與重寫

 更新時間:2022年07月25日 08:55:40   作者:欣欣子生胖氣  
在最初學(xué)習(xí)java的時候,人們都知道,java這種面向?qū)ο蟮恼Z言,一共有三大特征,分別是:封裝、繼承、多態(tài)。多態(tài)的實現(xiàn)途徑有三種:重寫、重載、接口實現(xiàn)。本文就來為大家詳細(xì)講講Java方法的重載與重寫

1.方法的重載

1.1.基本介紹

同一個類中,允許多個重名方法的存在,但要求形參列表不一致。

比如:

System.out.println(11)//輸出整數(shù)

System.out.println("Javayyds")//輸出字符串

System.out.println("1.1")//輸出浮點型

1.2.重載的好處

減輕了對方法起名和記名的麻煩。

1.3.重載使用細(xì)節(jié)

方法名:必須相同

參數(shù)列表:必須不同(參數(shù)的類型、參數(shù)的個數(shù)、參數(shù)的順序至少有一個不相同,參數(shù)名無要求)

返回類型:無要求

public int calculate(int a,int b){}

public int calculate(int num1,int num2){}//不構(gòu)成重寫,參數(shù)名不影響參數(shù)列表

public double calculate(int a,int b){}//不構(gòu)成重寫,返回類型無要求

1.4.可變參數(shù)

使用可變參數(shù)可以將一個類中多個相同名相同功能不同參數(shù)的方法封裝成一個方法。

public int calculate(int a,int b){

    return a + b;

}//求兩數(shù)和

public int calculate(int a,int b,int c){

    return a + b + c;

}//求三個數(shù)的和

public int calculate(int a,int b,int c,int d){

    return a + b + c + d;

}//求四個數(shù)的和

使用可變參數(shù)優(yōu)化:

public calculate(int...sums){//表示接受多個int類型的參數(shù)

    int sum = 0;

    for(int i = 0;i < sums.length;i ++){//使用時可以把sums當(dāng)作一個數(shù)組

        sum += sums[i];

    }

    return sum;

}

可變參數(shù)細(xì)節(jié):

  • 可變參數(shù)的"..."是固定的不能改變
  • 可變參數(shù)的實參有0個到多個
  • 可變參數(shù)的實參可以是數(shù)組
  • 可變參數(shù)的本質(zhì)就是數(shù)組
  • 可變參數(shù)和普通類型的參數(shù)可以在一起使用,但是必須保證可變參數(shù)在最后
  • 一個形參列表中只能出現(xiàn)一個可變參數(shù)
public int sum(int...sums,int b){}//錯誤,可變參數(shù)必須在最后

public int sum(int a,int...sums,String...s)//錯誤,一個形參列表只能有一個可變參數(shù)

2.方法的重寫

2.1.基本介紹

子類中有一個方法和父類的一個方法返回類型、方法名、參數(shù)列表都相同,則構(gòu)成重寫;

2.2.重寫的好處

重寫可以提高代碼的復(fù)用性

重寫使子類可以在不修改父類方法的情況下,進(jìn)行方法的修改與功能的拓展

2.3.重寫的細(xì)節(jié)

子類方法的方法名、參數(shù)列表必須與父類的完全一致。

子類方法的返回類型必須和父類的返回類型一樣,或者是父類返回類型的子類。

class Animal{

    public object m(){};

}



class cat extends Animal{

    publci String m(){};//構(gòu)成重寫,String是objec的子類

}

子類方法不能縮小父類方法的訪問權(quán)限

class Animal{

    public void m(){};

}



class cat extends Animal{

    protected void m(){};//錯誤,訪問權(quán)限 protected < public 

}

重寫方法不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常

重寫后可以通過super關(guān)鍵字調(diào)用原方法

public class test {

    public static void main(String[] args) {

        Cat cat = new Cat();

        cat.m();

    }

}



class Animal {

    public void m() {

        System.out.println("這是父類的方法~");

    }

}



class Cat extends Animal {

    @Override

    public void m() {

        super.m();//用super關(guān)鍵字調(diào)用父類中的方法

    }

}

構(gòu)造方法不能被重寫

構(gòu)造方法要求方法名與類名一致,而方法重寫則要求方法名相同,所以子類無法重寫父類的構(gòu)造方法

3.重寫與重寫的對比

名稱范圍方法名形參列表返回類型訪問修飾符
重載本類必須相同必須不同無要求無要求
重寫父子類必須相同必須相同重寫方法的返回類型必須和父類相同或是其子類子類不能縮小訪問權(quán)限

重寫與重載的區(qū)別主要在于形參列表

重寫規(guī)則可以記住口訣:兩同兩小一大(方法名和參數(shù)相同、子類返回類型和拋出異常小于等于父類、子類訪問權(quán)限大于等于父類)

到此這篇關(guān)于深入了解Java方法的重載與重寫的文章就介紹到這了,更多相關(guān)Java方法重載 重寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 對ArrayList進(jìn)行分頁實例代碼

    java 對ArrayList進(jìn)行分頁實例代碼

    這篇文章主要介紹了java 對ArrayList進(jìn)行分頁實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 對dbunit進(jìn)行mybatis DAO層Excel單元測試(必看篇)

    對dbunit進(jìn)行mybatis DAO層Excel單元測試(必看篇)

    下面小編就為大家?guī)硪黄獙bunit進(jìn)行mybatis DAO層Excel單元測試(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • java的JsonObject對象提取值方法

    java的JsonObject對象提取值方法

    下面小編就為大家分享一篇java的JsonObject對象提取值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 解決java main函數(shù)中的args數(shù)組傳值問題

    解決java main函數(shù)中的args數(shù)組傳值問題

    這篇文章主要介紹了解決java main函數(shù)中的args數(shù)組傳值問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java基礎(chǔ)第三篇 構(gòu)造器與方法重載

    Java基礎(chǔ)第三篇 構(gòu)造器與方法重載

    顯式初始化要求我們在寫程序時就確定初始值,這有時很不方便。我們可以使用構(gòu)造器(constructor)來初始化對象。構(gòu)造器可以初始化數(shù)據(jù)成員,還可以規(guī)定特定的操作。這些操作會在創(chuàng)建對象時自動執(zhí)行。下面文字將對該內(nèi)容做詳細(xì)介紹,需要的小伙伴請參考
    2021-09-09
  • IDEA報錯之前言中不允許有內(nèi)容問題及解決

    IDEA報錯之前言中不允許有內(nèi)容問題及解決

    當(dāng)使用IntelliJ IDEA時,可能會遇到報錯信息“前言中不允許有內(nèi)容”,這通常是由于XML文件是以帶有BOM頭的UTF-8格式保存的,導(dǎo)致IDE的解析出錯,解決辦法是在IDEA中調(diào)整文件編碼設(shè)置為無BOM的UTF-8,然后用文本編輯器(如Notepad++)
    2024-10-10
  • Springboot?JPA如何使用distinct返回對象

    Springboot?JPA如何使用distinct返回對象

    這篇文章主要介紹了Springboot?JPA如何使用distinct返回對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SparkSQl簡介及運行原理

    SparkSQl簡介及運行原理

    Spark SQL就是將SQL轉(zhuǎn)換成一個任務(wù),提交到集群上運行,類似于Hive的執(zhí)行方式。今天通過本文給大家分享SparkSQl簡介及運行原理,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • MyBatis攔截器的原理與使用

    MyBatis攔截器的原理與使用

    本文全面的講解了MyBatis攔截器的作用原理及使用方法,攔截器的使用可以提升開發(fā)效率,學(xué)習(xí)MyBatis的朋友不妨了解下本文
    2021-06-06
  • struts2通過action返回json對象

    struts2通過action返回json對象

    struts2通過action返回json對象其實很簡單的,首先我們需要引入jar包,然后在寫一個簡單的action就好了,接下來通過本文給大家介紹struts2通過action返回json對象的方法,感興趣的朋友一起看看吧
    2016-09-09

最新評論

古丈县| 伊金霍洛旗| 德令哈市| 祁连县| 霸州市| 陵水| 五家渠市| 昔阳县| 大石桥市| 三江| 肃宁县| 车险| 玛沁县| 廊坊市| 鄂伦春自治旗| 新乡市| 若羌县| 内乡县| 百色市| 全州县| 庆安县| 金秀| 汉川市| 明星| 淳安县| 梁山县| 鄱阳县| 高台县| 万载县| 新民市| 乌兰察布市| 五河县| 易门县| 泽州县| 通化市| 泰兴市| 渝北区| 大理市| 石景山区| 仙游县| 阜宁县|