Java中建構函式過載和方法過載
阿新 • • 發佈:2018-12-30
原始碼
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 自變數;而假設沒有其他話可說,就不使用。由於為顯然相同的概念賦予了兩個獨立的名字,所以看
起來可能有些古怪。幸運的是,方法過載允許我們為兩者使用相同的名字。