Java基礎知識回顧之方法過載
阿新 • • 發佈:2018-12-08
定義
方法過載(Overloading)的定義:如果有兩個方法的方法名相同,但引數不一致,哪麼可以說一個方法是另一個方法的過載。 具體說明如下:
- 方法名相同
- 方法的引數型別,引數個不一樣
- 方法的返回型別可以不相同
- 方法的修飾符可以不相同
- main 方法也可以被過載
但是都是有一個前提:必須是在同一個類中。
MyClass.java
class BookInfo{
String title; // Book 的標題
double price = 0.0d; // Book 的價格
/* 構造方法的過載 */
BookInfo( ){
System.out.println("無引數建構函式");
}
BookInfo(String title){
this.title = title;
System.out.println("單引數建構函式");
System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price);
}
BookInfo(String title, double price){
this.title = title;
this.price = price;
System.out.println("雙引數建構函式" );
System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price);
}
/* 一般方法的過載 */
public void getInfo(){
System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price);
}
public void getInfo(String title){
System.out.println("圖書名稱:"+ title + ",價格為:"+ this.price);
}
public void getInfo (String title, double price){
System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price);
}
}
public class MyClass {
public static void main(String[] args) {
new BookInfo();
new BookInfo("Java 開發實戰");
new BookInfo("Java 開發實戰", 69.8);
}
}
控制檯
無引數建構函式
單引數建構函式
圖書名稱:Java 開發實戰,價格為:0.0
雙引數建構函式
圖書名稱:Java 開發實戰,價格為:69.8
方法過載是讓類以統一的方式處理不同型別資料的一種手段。
方法過載的實現
方法名稱相同時,編譯器會根據呼叫方法的引數個數、引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯,這叫做過載分辨。