[英]Method overloading or not?
場景:同一個類中有兩個方法,它們具有相同的名稱,具有不同的參數和不同的訪問修飾符。 例如:
public void m1(int a){}
private void m1(String b){}
它是否超載?
讓我們參考這個Java語言規范。
如果一個類的兩個方法(無論是在同一個類中聲明,還是由一個類繼承,或者一個是聲明的,一個是繼承的)都具有相同的名稱,但簽名不是覆蓋等效的 ,那么方法名稱就是超載。
從8.4.2節,我們知道參數類型是簽名的一部分,並且您的兩個方法在參數類型上有所不同,因此它們是重載。
兩個方法或構造函數M和N具有相同的簽名,如果它們具有相同的名稱,相同的類型參數(如果有的話)(第8.4.4節),並且在將形式參數類型N調整為類型參數之后M, 相同的形式參數類型 。
'同一類中同一方法的兩個版本'稱為方法重載或編譯時多態 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.