1. 程式人生 > >Java中建構函式過載和方法過載

Java中建構函式過載和方法過載

原始碼

class Tree {
	int height;

	Tree() {
		prt("Planting a seeding");
		height = 0;
	}

	Tree(int i) {
		prt("Creating new Tree that is " + i + " feet tall");
		height = i;
	}

	void info() {
		prt("Tree is " + height + " feet tall");
	}

	void info(String s) {
		prt(s + " : Tree is " + height + " feet tall");
	}

	private void prt(String s) {
		System.out.println(s);
	}
}

public class Overloading {

	public static void main(String[] args) {
		for (int i = 0; i < 2; i++) {
			Tree t = new Tree(i);
			// Overloaded method
			t.info();
			t.info("overloaded method");
		}
		// Overloaded constructor
		new Tree();
		new Tree(2);
	}
}

執行結果


建構函式過載:

Tree 既可建立成一顆種子,不含任何自變數;亦可建立成生長在苗圃中的植物。為支援這種建立,共使用了
兩個建構函式,一個沒有自變數(預設建構函式),另一個採用現
成的高度。

方法過載:我們也有可能希望通過多種途徑呼叫info()方法。例如,假設我們有一條額外的訊息想顯示出來,就使用
String 自變數;而假設沒有其他話可說,就不使用。由於為顯然相同的概念賦予了兩個獨立的名字,所以看
起來可能有些古怪。幸運的是,方法過載允許我們為兩者使用相同的名字。