国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java語(yǔ)言中的重寫(xiě)和重載

這篇具有很好參考價(jià)值的文章主要介紹了Java語(yǔ)言中的重寫(xiě)和重載。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Java語(yǔ)言中的重寫(xiě)(override)和重載(overload)

重寫(xiě)(override)和重載(overload)是編程語(yǔ)言中的兩個(gè)常見(jiàn)概念,用于描述函數(shù)或方法的特定行為。

重寫(xiě)指的是在子類中重新定義(覆蓋)父類中已經(jīng)存在的同名方法。重寫(xiě)可以修改或擴(kuò)展父類的方法實(shí)現(xiàn),使其更適合子類的需求。在重寫(xiě)中,子類方法的名稱、參數(shù)類型、返回值類型必須與父類方法完全一致。

重載指的是在同一個(gè)類中定義多個(gè)同名的方法,但它們具有不同的參數(shù)類型和/或數(shù)量。在調(diào)用這些方法時(shí),編譯器會(huì)根據(jù)傳入的參數(shù)類型和數(shù)量選擇相應(yīng)的方法進(jìn)行調(diào)用。重載方法的返回值類型可以相同也可以不同。方法的名稱必須相同,但參數(shù)列表必須有所不同。Java語(yǔ)言中的重載(overload)只能同一個(gè)類中。

一個(gè)重寫(xiě)方法的例子

假設(shè)有一個(gè)名為 "Vehicle" 的父類,其中包含一個(gè)名為 "move" 的方法。如果我們創(chuàng)建了一個(gè)名為 "Car" 的子類,并希望修改 "move" 方法的實(shí)現(xiàn),以便更好地適應(yīng)汽車的運(yùn)動(dòng)方式,那么我們可以使用重寫(xiě)在 "Car" 類中重新定義 "move" 方法。源碼如下:

//重寫(xiě)示例
class Vehicle {
  public void move() {
    System.out.println("The vehicle is moving.");
  }
}

class Car extends Vehicle {
  @Override
  public void move() {
    System.out.println("The car is driving on the road.");
  }
}

public class TestOverride {
   public static void main(String args[]){
      Vehicle a = new Vehicle (); // Vehicle 對(duì)象
      Vehicle b = new Car(); // Car對(duì)象
 
      a.move();// 執(zhí)行 Vehicle 類的方法
 
      b.move();//執(zhí)行 Car 類的方法
   }
}

在這個(gè)例子中,Car 類重寫(xiě)了 Vehicle 類的 move() 方法,因此當(dāng)我們調(diào)用 Car 的 move() 方法時(shí),它將輸出 "The car is driving on the road." 而不是原來(lái)的 "The vehicle is moving."。

特別提示,@Override注解不是必需的,但建議在重寫(xiě)父類方法時(shí)使用它。

@Override注解可以省略,但不建議這樣做。如果我們?cè)谧宇愔兄貙?xiě)了父類的方法,并且使用了@Override注解來(lái)標(biāo)識(shí)這個(gè)方法,那么編譯器會(huì)在編譯時(shí)檢查該方法是否正確地覆蓋了父類中的同名方法。這可以幫助我們避免一些錯(cuò)誤。如果我們省略了@Override注解,則編譯器將無(wú)法檢查出這些錯(cuò)誤。

使用@Override注解還可以使代碼更加易讀和易維護(hù)。在閱讀代碼時(shí),我們可以很容易地看到哪些方法是重寫(xiě)了父類中的方法。

一個(gè)重載方法的例子

源碼如下:

//重載示例
class TestOverload{
  public int add(int a, int b) {
    return a + b;
  }
  
  public int add(int a, int b, int c) {
    return a + b + c;
  }
  
  public String add(String a, String b) {
    return a + b;
  }

  public static void main(String[] args){
    TestOverload o = new  TestOverload();
    int result1 = o.add(10,20); //執(zhí)行int add(int a, int b)方法
    System.out.println(result1); //30
    int result2 = o.add(10,20,30); //執(zhí)行int add(int a, int b, int c)方法       
    System.out.println(result2); //60
    String result3 = o.add("10", "20"); //執(zhí)行String add(String a, String b)方法
    System.out.println(result3); //1020
  }
}

在這個(gè)例子中,我們?cè)赥estOverload類中定義了三個(gè)名為 "add" 的方法。一個(gè)接收int類型2個(gè)參數(shù),一個(gè)接收int類型3個(gè)參數(shù),還有一個(gè)接收String類型參數(shù)。當(dāng)我們使用 TestOverload類的對(duì)象調(diào)用 add() 方法時(shí),編譯器會(huì)根據(jù)傳入的參數(shù)類型和數(shù)量選擇相應(yīng)的方法進(jìn)行調(diào)用。

在Java中,多態(tài)性是指同一個(gè)方法名稱可以被不同的對(duì)象調(diào)用,且能夠根據(jù)調(diào)用對(duì)象的實(shí)際類型來(lái)執(zhí)行不同的方法。方法重載和方法重寫(xiě)是Java多態(tài)性的兩種不同表現(xiàn)形式。

方法重載是指在同一個(gè)類中,可以有多個(gè)方法具有相同的名稱,但參數(shù)列表必須不同或參數(shù)類型不同。重載方法可以有不同的返回類型,只要參數(shù)列表不同即可。

而方法重寫(xiě)是指子類實(shí)現(xiàn)了與父類相同的方法名稱、參數(shù)類型和返回類型的方法。子類在重寫(xiě)方法時(shí),可以改變方法的實(shí)現(xiàn)細(xì)節(jié),但不能改變方法的名稱、參數(shù)列表和返回類型。通過(guò)方法重寫(xiě),子類可以覆蓋掉父類的方法,并使用自己的實(shí)現(xiàn)邏輯。

方法重載和方法重寫(xiě)都是Java中多態(tài)性的不同表現(xiàn),可以讓程序更加靈活和易于擴(kuò)展。

小結(jié)

重寫(xiě)(Override)是指子類使用與父類相同的方法名、返回類型和參數(shù)類型來(lái)覆蓋父類中已有的方法實(shí)現(xiàn)。當(dāng)我們需要修改父類中的方法實(shí)現(xiàn)時(shí),就需要重寫(xiě)該方法。重寫(xiě)的方法不能比原來(lái)的方法具有更嚴(yán)格的訪問(wèn)權(quán)限,因?yàn)橹貙?xiě)后的方法要能被父類類型的引用調(diào)用。重寫(xiě)是子類對(duì)父類的允許訪問(wèn)的方法的實(shí)現(xiàn)過(guò)程進(jìn)行重新編寫(xiě), 返回值和形參都不能改變。

重載(Overload)是指在同一個(gè)類中,有多個(gè)方法名稱相同但參數(shù)列表不同的方法。它們的方法名相同,但參數(shù)類型、個(gè)數(shù)或順序不同,即為重載。重載方法可以返回不同的值類型。

方法的重寫(xiě)和重載是Java多態(tài)性的不同表現(xiàn),方法重載是一個(gè)類的多態(tài)性表現(xiàn),而方法重寫(xiě)是子類與父類的一種多態(tài)性表現(xiàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-437972.html

到了這里,關(guān)于Java語(yǔ)言中的重寫(xiě)和重載的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity中的重載和重寫(xiě)

    Unity中的重載和重寫(xiě)

    重載:(兩個(gè)必須一個(gè)可以) 參數(shù)名必須相同 參數(shù)列表必須不同 返回值類型可以不同 代碼示例: 結(jié)果: 重寫(xiě):(三個(gè)必須) 函數(shù)名必須相同 參數(shù)列表必須相同 返回值類型必須相同 代碼示例: 父類 子類繼承父類 結(jié)果: 多態(tài)、封裝、繼承的位置不同,重載在同一定義域

    2024年02月11日
    瀏覽(16)
  • Go語(yǔ)言支持重載嗎?如何實(shí)現(xiàn)重寫(xiě)?

    Go語(yǔ)言不支持傳統(tǒng)意義上的函數(shù)和方法重載。在Go語(yǔ)言中,函數(shù)名或方法名不能相同但參數(shù)列表不同,因?yàn)檫@會(huì)導(dǎo)致編譯錯(cuò)誤。 然而,可以通過(guò)方法重寫(xiě)(override)來(lái)實(shí)現(xiàn)類似的功能。方法重寫(xiě)是指在子類中定義一個(gè)與父類同名的方法,從而覆蓋父類中的方法。 下面是一個(gè)簡(jiǎn)

    2024年04月09日
    瀏覽(21)
  • python中的類class: 繼承、覆蓋、重寫(xiě)、重載、擴(kuò)展、多態(tài)、封裝

    python中的類class: 繼承、覆蓋、重寫(xiě)、重載、擴(kuò)展、多態(tài)、封裝

    使用? class ?創(chuàng)建類。類中有方法、屬性。 1.1 __init__() 函數(shù) 類的內(nèi)置? __init__() ?函數(shù)。所有類都有一個(gè)名為 __init__() 的函數(shù),它在啟動(dòng)類時(shí)執(zhí)行。 使用 __init__() 函數(shù)將值賦給對(duì)象屬性,或者在創(chuàng)建對(duì)象時(shí)需要執(zhí)行的其他操作。 每次使用類創(chuàng)建新對(duì)象時(shí),都會(huì) 自動(dòng)調(diào)

    2024年02月08日
    瀏覽(27)
  • Java中方法的重載與重寫(xiě)

    Java中方法的重載與重寫(xiě)

    提示:這里可以添加本文要記錄的大概內(nèi)容: 方法的重載與重寫(xiě)容易混,所以單獨(dú)拿出來(lái)比較 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 在同一個(gè)類中,允許定義一個(gè)以上同名的方法稱為方法重載 方法重載的規(guī)則: 方法名相同 方法的參數(shù)必須不同,參數(shù)類型或參

    2024年02月08日
    瀏覽(26)
  • java面試基礎(chǔ) -- 方法重載 & 方法重寫(xiě)

    java面試基礎(chǔ) -- 方法重載 & 方法重寫(xiě)

    目錄 重載 重寫(xiě)? ? ? ? ? ?方法的重載是指在同一個(gè)類中定義多個(gè)方法, 他們具有相同的名稱, 但是具有不同的參數(shù)列表, 例如: ? ? ? ? 此處我們看到三個(gè)不同參數(shù)的, 但是具有相同返回值和方法名的方法. 有如下測(cè)試案例: 運(yùn)行結(jié)果為: ?我們將其中一個(gè)myMethod方法的返回值改

    2024年02月12日
    瀏覽(22)
  • 關(guān)于Java中方法重載和方法重寫(xiě)

    方法重寫(xiě)是子類繼承父類(默認(rèn)繼承Object類)后覆蓋父類的方法 需要保證同名 同參 同返回值 且訪問(wèn)權(quán)限范圍不能縮小(publicprotecteddefaultprivate) 方法重載是同類中可以有多個(gè)同名但參數(shù)不同的方法 調(diào)用方法的時(shí)候可根據(jù)傳參情況執(zhí)行對(duì)應(yīng)的方法 需要注意參數(shù)不同可以指參數(shù)數(shù)量

    2023年04月20日
    瀏覽(20)
  • java八股文面試[java基礎(chǔ)]—— 重載 和 重寫(xiě)

    java八股文面試[java基礎(chǔ)]—— 重載 和 重寫(xiě)

    ? Overload Override Overwrite三者區(qū)別: ? Java中,有一個(gè)名叫方法簽名的東西,它的定義是這樣的 Definition: Two of the components of a method declaration comprise the method signature—the method’s name and the parameter types. 大概意思是,方法簽名有兩部分組成——方法名和參數(shù)列表 我上面的函數(shù)的方法

    2024年02月12日
    瀏覽(28)
  • Java中方法的重載和重寫(xiě)的區(qū)別。

    一、定義上的區(qū)別: 1、重載是指不同的函數(shù)使用相同的函數(shù)名,但是函數(shù)的參數(shù)個(gè)數(shù)或類型不同。調(diào)用的時(shí)候根據(jù)函數(shù)的參數(shù)來(lái)區(qū)別不同的函數(shù)。 2、覆蓋(也叫重寫(xiě))是指在派生類中重新對(duì)基類中的虛函數(shù)(注意是虛函數(shù))重新實(shí)現(xiàn)。即函數(shù)名和參數(shù)都一樣,只是函數(shù)的實(shí)

    2023年04月08日
    瀏覽(42)
  • Python中重寫(xiě)(override)

    Python中,有重寫(xiě)(override)的概念,但是沒(méi)有嚴(yán)格意義上的重載(overload)。 類繼承時(shí),子類可以重新定義父類中已有的方法,稱為重寫(xiě)(Override)。 在Python中,沒(méi)有像其他語(yǔ)言(如C++)那樣的函數(shù)重載(Overload)機(jī)制。函數(shù)重載是指在同一作用域內(nèi)允許多個(gè)函數(shù)具有相同的名

    2024年02月02日
    瀏覽(34)
  • 【JAVA雜貨鋪】一文帶你走進(jìn)面向?qū)ο缶幊蘾繼承|重載|重寫(xiě)|期末復(fù)習(xí)系列 | (中4)

    【JAVA雜貨鋪】一文帶你走進(jìn)面向?qū)ο缶幊蘾繼承|重載|重寫(xiě)|期末復(fù)習(xí)系列 | (中4)

    ??個(gè)人主頁(yè):? Aileen_0v0 ??系列專欄 :Java學(xué)習(xí)系列專欄 ??個(gè)人格言:\\\"沒(méi)有羅馬,那就自己創(chuàng)造羅馬~\\\" ? 目錄 繼承 ?私有成員變量在繼承中的使用?編輯 ?當(dāng)子類和父類變量不重名時(shí): 當(dāng)子類和父類重名時(shí): ???總結(jié): 繼承的含義: toString方法的作用:? 重寫(xiě)和重載的區(qū)別 對(duì)比狗和

    2024年02月05日
    瀏覽(122)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包