JAVA中重寫(Override)與重載(Overload)的相關(guān)示例
前言
關(guān)于JAVA,我們也已經(jīng)學(xué)習(xí)過一段時(shí)間了,今天我們來學(xué)習(xí)一下在JAVA中方法的重載與重寫。

方法重載(Overload)
方法重載(overload)是指在一個(gè)類中定義多個(gè)同名但參數(shù)列表不同的方法。Java編譯器會(huì)根據(jù)方法調(diào)用時(shí)傳遞的參數(shù)來選擇調(diào)用哪個(gè)方法。方法重載的優(yōu)勢在于可以為相似功能的方法提供統(tǒng)一的方法名,方便代碼編寫和維護(hù)。
重載的規(guī)則
- 方法名必須相同。
- 參數(shù)列表必須不同(個(gè)數(shù)、類型、順序)。
- 方法的返回類型可以相同也可以不同。
- 不能僅依據(jù)返回類型的不同來重載方法。
示例代碼
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
在這個(gè)示例中,我們定義了三個(gè)名為add的方法,它們的參數(shù)列表不同。當(dāng)需要調(diào)用add方法時(shí),Java編譯器會(huì)根據(jù)傳入的參數(shù)類型和數(shù)量選擇正確的方法進(jìn)行調(diào)用。例如,add(1,2)會(huì)調(diào)用第一個(gè)add方法,add(1.0,2.0)會(huì)調(diào)用第二個(gè)add方法。
方法重寫(Override)
在 Java 中,方法重寫是指子類覆蓋了父類中具有相同名稱、參數(shù)列表和返回類型的方法。重寫方法的目的是為了改變方法的實(shí)現(xiàn),讓子類的方法能夠滿足自己的需求,并且能夠替換父類中的同名方法。
重寫的規(guī)則
- 方法名稱、參數(shù)列表和返回類型必須與父類中的方法相同。
- 子類中重寫的方法的訪問修飾符不能低于父類中被重寫的方法的訪問修飾符。
- 子類中重寫的方法不能拋出比父類中被重寫的方法聲明的更多的異常類型。
- 子類中無法重寫父類中被聲明為 final 的方法。
示例代碼
class Animal {
public void move() {
System.out.println("動(dòng)物可以移動(dòng)");
}
}
class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal(); // Animal 對象
Animal b = new Dog(); // Dog 對象
a.move(); // 執(zhí)行 Animal 類的方法
b.move(); // 執(zhí)行 Dog 類的方法
}
}
在上面的例子中,Animal 類有一個(gè) move() 方法。在 Dog 類中,我們重寫了這個(gè)方法,并且定義了新的實(shí)現(xiàn)方式。在 main() 方法中,我們創(chuàng)建了一個(gè) Animal 類型的對象和一個(gè) Dog 類型的對象。通過調(diào)用它們的 move() 方法,我們可以看到,當(dāng)調(diào)用 Animal 類型的對象時(shí),執(zhí)行的是 Animal 類中的方法,而當(dāng)調(diào)用 Dog 類型的對象時(shí),執(zhí)行的是 Dog 類中的方法。這就是方法重寫的作用。
方法重載與方法重寫的區(qū)別

方法重載指在同一個(gè)類中定義多個(gè)同名方法,但它們的參數(shù)列表不同(參數(shù)類型、參數(shù)個(gè)數(shù)、參數(shù)順序不同)。Java 編譯器會(huì)根據(jù)不同的參數(shù)列表來區(qū)分和調(diào)用不同的方法。在方法重載中,方法名相同,但參數(shù)列表不同,返回類型可以相同也可以不同。
方法重載是在同一個(gè)類中出現(xiàn),方法名相同,但參數(shù)列表不同,方法重寫是在父類和子類之間出現(xiàn),方法名、參數(shù)列表和返回值類型必須相同。
總結(jié)
到此這篇關(guān)于JAVA中重寫(Override)與重載(Overload)的文章就介紹到這了,更多相關(guān)JAVA 重寫與重載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot集成Kafka最佳實(shí)踐與詳細(xì)代碼
Spring Boot作為Java領(lǐng)域的流行框架,提供了與Kafka的無縫集成,本文將詳細(xì)介紹如何在Spring Boot項(xiàng)目中優(yōu)雅地集成Kafka,并通過最佳實(shí)踐和代碼示例詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧2025-12-12
解決調(diào)試JDK源碼時(shí),不能查看變量的值問題
下面小編就為大家?guī)硪黄鉀Q調(diào)試JDK源碼時(shí),不能查看變量的值問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
Java 數(shù)組元素倒序的三種方式(小結(jié))
這篇文章主要介紹了Java 數(shù)組元素倒序的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果
這篇文章主要介紹了Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果,涉及Javafx操作系統(tǒng)文件模擬資源管理器的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子及實(shí)現(xiàn)過程
這篇文章主要介紹了Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子 ,實(shí)現(xiàn)了小程序的自定義登陸,將自定義登陸態(tài)token返回給小程序作為登陸憑證。需要的朋友可以參考下2018-11-11
java實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
在SpringBoot項(xiàng)目中使用Java8函數(shù)式接口的方法示例
在Spring Boot項(xiàng)目中,Java 8 的函數(shù)式接口廣泛用于實(shí)現(xiàn)各種功能,如自定義配置、數(shù)據(jù)處理等,函數(shù)式接口在Spring Boot中非常有用,本文展示了在SpringBoot項(xiàng)目中使用Java8的函數(shù)式接口的方法示例,需要的朋友可以參考下2024-03-03
java反射調(diào)用get/set方法實(shí)現(xiàn)
本文文章介紹了在Java中使用反射調(diào)用get/set方法時(shí),如何通過Introspector和PropertyDescriptor來更優(yōu)雅地處理,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2025-12-12

