2015-03-08 86 views

回答

0

你從哪裏聽說這是不好的做法?
你只能有一個構造具有一定的參數列表順序,使被稱爲一個是你已經通過參數指定的一個

public class Test { 
    public Test() {...} 
    public Test(String str, int x) {...} 
} 

說以後你叫:

Test test = new Test("Hello", 46); 

被調用構造函數是這個:

public Test(String str, int x) {...} 

其中字符串"Hello"46分別通過strx

0

什麼編程語言? 一切都取決於語言。例如,對於德爾福來說,必須有多個構造函數纔是有效的。即使使用相同的名稱和不同的參數(數量和類型)。在這種情況下,建設者應該超載。

constructor TMyClass.Create overrride; 
begin 
    // Code here 
end; 

constructor TMyClass.Create(Value: integer); override; 
begin 
    // Code here 
end; 

constructor TMyClass.Create(Value1: integer; Value2: string); override; 
begin 
    // Code here 
end; 

編譯器自己知道哪個將要運行。 事實上,它甚至法律要做到這一點:

constructor TMyClass.Create(Value3: double); 
begin 
    Create(Random (9), 'Hello'); 
end; 

即調用彼此。

編譯器的魔力決定了什麼時候執行,什麼必須執行。而且我知道這是所有的LOO。 ;)

相關問題