java方法重載示例
什么是方法的重載?
方法重載是以統(tǒng)一的方式處理不同數(shù)據(jù)類型的一種手段。
怎樣構(gòu)成方法的重載?
方法名相同, 形參不同。而形參的不同又表示在: 1). 形參的個數(shù)不同 2). 形參的類型不同 3). 形參的順序不同
注意事項
1. 如果兩個方法的返回值不同, 而其他都相同。 這個時候并不構(gòu)成方法的重載。 在編譯的時候會報錯:
示例代碼(錯誤):Test.java
/*返回值的不同并不能構(gòu)成方法的重載*/
public class Test {
public static void main(String[] args) {
}
}
class A {
public void f() { //返回值為 void
}
public int f() { //返回值為 int, 其他和上面的f()方法是一樣的
return 1;
}
}
錯誤信息:
Test.java:12: error: method f() is already defined in class A
public int f() {
^
1 error
2. 構(gòu)造方法和普通方法一樣, 也可以方法重載。
示例代碼(正確): Test.java
/* 方法的重載
* 輸出結(jié)果:
* public A() {} 這個構(gòu)造方法被調(diào)用了
* public A(int i) {} 這個構(gòu)造方法被調(diào)用了
* public void f() {} 這個構(gòu)造方法被調(diào)用了
* public void f(int i) {} 這個構(gòu)造方法被調(diào)用了
*/
public class Test {
public static void main(String[] args) {
A aa1 = new A(); //調(diào)用9行那個方法
A aa2 = new A(1); //調(diào)用13行那個方法
aa1.f(); //調(diào)用17行那個方法
aa2.f(1); //調(diào)用21行那個方法
}
}
class A {
public A() { //9行
System.out.printf("public A() {} 這個構(gòu)造方法被調(diào)用了\n");
}
public A(int i) { //13行
System.out.printf("public A(int i) {} 這個構(gòu)造方法被調(diào)用了\n");
}
public void f() { //17行
System.out.printf("public void f() {} 這個構(gòu)造方法被調(diào)用了\n");
}
public void f(int i) { //21行
System.out.printf("public void f(int i) {} 這個構(gòu)造方法被調(diào)用了\n");
}
}
相關文章
MyEclipse8.6首次運行maven項目圖標上沒有小M的標識怎么解決
myeclipse8.6導入maven項目后識別為普通java項目,即項目圖標上沒有小M的標識。這時是無法直接運行的,怎么解決這一問題呢?下面小編給大家?guī)砹私鉀Q方案,需要的朋友參考下吧2016-11-11
SpringCloud自定義loadbalancer實現(xiàn)標簽路由的詳細方案
本文介紹了通過標簽路由解決前端開發(fā)環(huán)境接口調(diào)用慢的問題,實現(xiàn)方案包括在本地服務注冊元數(shù)據(jù)、自定義負載均衡器、以及網(wǎng)關配置等步驟,通過環(huán)境變量設置標簽,網(wǎng)關根據(jù)請求頭中的標簽進行路由,從而實現(xiàn)前后端互不干擾的開發(fā)調(diào)試,感興趣的朋友一起看看吧2025-02-02

