2011-08-18 72 views
5

當父類有add方法有兩個參數,如果我們在子類中有3個參數添加新add方法,我們稱此爲過載?澄清超載

在此先感謝。

+0

是。與重寫相反。 – Ingo

回答

6

是的,由於具有兩個參數的方法由子類繼承,因此具有三個參數的方法被稱爲重載方法。

class A 
    add(param1, param2) 

class B 
    add(param1, param2)   <-- inherited 
    add(param1, param2, param3) <-- overloading the above method 

從官方步道上Overriding and Hiding Methods引述:

注:在子類中,你可以重載從超繼承的方法。這種重載方法既不隱藏也不重寫超類方法 - 它們是新方法,對於子類是唯一的。

(正如你可能已經想通了,三個班的方法不是一個壓倒一切的方法。)

3

超載是當方法具有相同的名稱,但不同的簽名。 重寫 - 當方法具有相同的名稱和相同的簽名。

5

是的,這是超載。即使該方法與具有兩個參數的方法在同一個類中,它也會超載。

注意,當有不同數量的參數(沒有可變參數參數)重載是相當簡單的。當你擁有相同數量參數的方法時,它會變得更加複雜 - 在這一點上,編譯器必須從適用的候選方法中選擇「最佳」方法。

還要注意的是超載在其中,而根據實際類型的方法被稱爲所述對象的執行時判定執行倍率編譯時確定的。

1

如果方法名已存在,但參數不同,那麼是的,這是超載。

2

是絕對是一個重載和繼承的一個很好的功能。

0

是的......即使方法位於同一個類中,也是重載方法。

PS:我認爲有三個參數的新方法具有相同的名稱和返回類型