再談重載

方法的重載

當創建一個對象時,也就給此對象分配到尺寸空間取了一個名字。所謂方法,則是給某個動作取得名字。通過使用名字,則可以引用所有的對象和方法。名字取的好可以使系統更加易於理解和修改。
在日常生活中,相同的詞可以表達多種不同的含義——他們被“重載”了。特別是含義之間的差距很小的時候,這種方式十分有用。

在java(和c++)裏,構造器是強制重載方法名的另一種原因。既然構造器的名字由類名所決定。那麼就只能有一個構造器名。
如果要想用多種方式創建一個對象。假設要創建一個類,既可以用標準方式進行初始化,也可以從文件裏讀取信息來初始化,這就需要兩個構造器:

  • 1.一個默認構造器
  • 2.另一個取字符串作爲形式參數—該字符串表示初始化對象所需要的文件名稱

由於都是構造器,所以他們必須有相同的名字,即類名。爲了讓方法名相同而形式參數不同的構造器同時存在,必須用到方法重載。同時,儘管方法重載是構造器所必需的,但它也可以應用於其他方法,且用法同樣方便。

重載的構造器和重載的方法示例

class Tree{
	int height;
	Tree(){
		print("Planting a seedling");
		height = 0;
	}
	Tree(int initialHeight){
		height = initialHeight;
		print("Creating new Tree that is "+height+"feet tail");
	}
	void info(){
		print("Tree is "+height+"feet tail");
	}
	void info(String s){
		print(s +":Tree is "height+"feet tail");
	}
}
public class Overloading(){
	public static void main(String[] agrs){
		for(int i=0;i<5;i++){
			Tree t = new Tree(i);
			t.info();
			t.info("overloaded method");
		}
		new Tree();
	}
}

有了方法重載,可以爲兩者使用相同的名字

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章