[英]Method overloading is not working as expected
在Java函數重載是函數參數的類型或數量是我不正確請糾正我
我正在進行一些測試,我發現一些不正確的Java重載,如public static void doSomeThing()
和public static int doSomeThing()
。
這兩個函數都是相同的,它不應該編譯但它正在運行。
喜歡這段代碼。
package com.sudeep.test;
public class StaticFunctionOverload {
public static void main(String arg[]) {
doSomeThing();
}
public static int doSomeThing() {
System.out.println("Im in int block");
return -1;
}
public static void doSomeThing() {
System.out.println("Im in void block");
}
}
方法的簽名必須不同:
Java編程語言支持重載方法,Java可以區分具有不同方法簽名的方法。 這意味着如果類中的方法具有不同的參數列表,則它們可以具有相同的名稱(有一些資格,將在標題為“接口和繼承”的課程中討論)。
讀這個:
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
所以,這將起作用,例如:
package com.sudeep.test;
public class StaticFunctionOverload {
public static void main(String arg[]) {
doSomeThing();
}
public static int doSomeThing() {
System.out.println("Im in int block");
return -1;
}
public static void doSomeThing(int param1) {
System.out.println("Im in void block with " + param1);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.