1. 程式人生 > >Java基礎知識回顧之方法過載

Java基礎知識回顧之方法過載

定義

方法過載(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

方法過載是讓類以統一的方式處理不同型別資料的一種手段。

方法過載的實現

方法名稱相同時,編譯器會根據呼叫方法的引數個數、引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯,這叫做過載分辨。