java必學(xué)必會(huì)之方法的重載(overload)
一、方法的重載

方法名一樣,但參數(shù)不一樣,這就是重載(overload)。
所謂的參數(shù)不一樣,主要有兩點(diǎn):第一是參數(shù)的個(gè)數(shù)不一樣,第二是參數(shù)的類型不一樣。只要這兩方面有其中的一方面不一樣就可以構(gòu)成方法的重載了。
package cn.galc.test;
public class TestOverLoad {
void max(int a, int b) {
System.out.println(a > b ? a : b);
}
/*
* int max(int a, int b) {
* return a > b ? a : b;
* }
*/
void max(float a, float b) {
System.out.println(a > b ? a : b);
}
}
這里有void修飾符的兩個(gè)max方法名字相同,但它們的參數(shù)類型不一樣,所以可以構(gòu)成重載。而int max(int a , int b)方法與void max(int a, int b)方法是不構(gòu)成重載的,現(xiàn)在它們是重名的兩個(gè)方法,在一個(gè)類中聲明兩個(gè)重名的方法是不允許的,編譯會(huì)出錯(cuò)。方法名一樣,參數(shù)類型一樣,只有返回值不一樣,這個(gè)不構(gòu)成重載,因?yàn)榉椒梢赃@么調(diào)用,調(diào)用一個(gè)方法時(shí)可以不使用的它返回值,所以當(dāng)調(diào)用這兩個(gè)方法時(shí),把整型的數(shù)傳進(jìn)去,由于兩個(gè)方法都是一樣的名字,一樣的參數(shù)類型,所以編譯器無(wú)法區(qū)分到底要調(diào)用的是哪一個(gè)方法。構(gòu)成重載深層次的原因:只要這兩個(gè)方法編譯器能區(qū)分開(kāi)來(lái),在調(diào)用的時(shí)候知道要調(diào)用的是哪一個(gè),不會(huì)產(chǎn)生混淆,這兩個(gè)方法就構(gòu)成重載。
再看下面這兩個(gè)方法:
int max(int a, int b) {
System.out.println("調(diào)用的int max(int a, int b)方法");
return a > b ? a : b;
}
int max(short a, short b) {
System.out.println("調(diào)用的int max(short a, short b)方法");
return a > b ? a : b;
}
這兩個(gè)方法也是可以構(gòu)成重載的,因?yàn)榫幾g器一看到整數(shù),就會(huì)把它當(dāng)作int類型。所以當(dāng)把整數(shù)傳進(jìn)來(lái)的時(shí)候,編譯器首先調(diào)用的是max(int a , int b)這個(gè)方法。而要想調(diào)用max(short a ,short b)這個(gè)方法,那么就得在main方法里面這樣寫:
public static void main(String[] args) {
TestOverLoad t= new TestOverLoad();
t.max(3,4); //這里調(diào)用的是max(int a , int b)這個(gè)方法
short a = 3;
short b = 4;
t.max(a, b); //這里調(diào)用的是max(short a , short b)這個(gè)方法。
}
二、構(gòu)造方法的重載
與普通方法一樣,構(gòu)造方法也可以重載
package cn.galc.test;
public class Person {
int id;
int age;
/**
* 構(gòu)造方法
*/
public Person() {
id=0;
age=20;
}
/**
* 構(gòu)造方法重載一
* @param i
*/
public Person(int i) {
id=i;
age=20;
}
/**
* 構(gòu)造方法重載二
* @param i
* @param j
*/
public Person(int i,int j) {
id=i;
age=j;
}
}
以上就是針對(duì)java方法的重載進(jìn)行的詳細(xì)解釋,希望對(duì)大家的學(xué)習(xí)有所幫助。
- 詳解Java中方法重寫與重載的區(qū)別(面試高頻問(wèn)點(diǎn))
- Java方法重載實(shí)現(xiàn)原理及代碼實(shí)例
- Java方法重載和重寫原理區(qū)別解析
- java中的方法重載知識(shí)點(diǎn)總結(jié)
- Java方法重載Overload原理及使用解析
- JAVA的LIST接口的REMOVE重載方法調(diào)用原理解析
- Java方法重載的使用實(shí)戰(zhàn)案例
- 帶你深入概括Java!六、方法和方法重載?。ㄍ扑])
- 簡(jiǎn)單談?wù)凧ava中的方法和方法重載
- 詳解Java使用super和this來(lái)重載構(gòu)造方法
- 淺談java中的對(duì)象、類、與方法的重載
- Java的方法重載與變量作用域簡(jiǎn)介
- Java的this關(guān)鍵字的使用與方法的重載相關(guān)知識(shí)
- 淺談java實(shí)現(xiàn)重載的方法
- 解析Java繼承中方法的覆蓋和重載
- java基礎(chǔ)之方法和方法的重載詳解
相關(guān)文章
SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼
在實(shí)際開(kāi)發(fā)中,肯定會(huì)經(jīng)常遇到對(duì)參數(shù)字段進(jìn)行校驗(yàn)的場(chǎng)景,通常我們只能寫大量的if else來(lái)完成校驗(yàn)工作,而如果使用SpringBoot Validation則可以輕松的通過(guò)注解來(lái)完成,接下來(lái)小編給大家介紹下利用SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼,需要的朋友參考下吧2022-06-06
Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份
隨著我們的長(zhǎng)期使用,Jenkins系統(tǒng)中的內(nèi)容會(huì)越來(lái)越多,特別是一些配置相關(guān)的東西,不能有任何丟失。這個(gè)時(shí)候我們就需要定期備份我們的Jenkins系統(tǒng),避免一些誤操作不小心刪除了某些重要文件,本文就將介紹下Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份2021-06-06
maven利用tomcat插件部署遠(yuǎn)程Linux服務(wù)器的步驟詳解
Maven已經(jīng)是Java的項(xiàng)目管理常用方式,下面這篇文章主要給大家介紹了關(guān)于maven利用tomcat插件部署遠(yuǎn)程Linux服務(wù)器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
SpringCloud實(shí)戰(zhàn)之Feign聲明式服務(wù)調(diào)用
這篇文章主要介紹了SpringCloud實(shí)戰(zhàn)之Feign聲明式服務(wù)調(diào)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Java 中責(zé)任鏈模式實(shí)現(xiàn)的三種方式
本文重點(diǎn)給大家介紹java中如何編寫責(zé)任鏈模式。主要從下面3個(gè)框架中的代碼中介紹。非常不錯(cuò),需要的朋友參考下吧2017-09-09
SpringBoot加密配置文件的SQL賬號(hào)密碼方式
這篇文章主要介紹了SpringBoot加密配置文件的SQL賬號(hào)密碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Spring中OpenFeign的使用方法最佳實(shí)踐
這篇文章主要介紹了Spring中OpenFeign使用的相關(guān)資料,OpenFeign是一個(gè)聲明式的WebService客戶端,簡(jiǎn)化了微服務(wù)之間的調(diào)用,類似于Controller調(diào)用Service,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解
本文介紹了Spring Boot中 @KafkaListener 注解的介紹、原理和使用方法,通過(guò)本文的介紹,我們希望讀者能夠更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在項(xiàng)目中更加靈活地應(yīng)用2023-09-09

