【发布时间】:2018-02-13 12:03:32
【问题描述】:
我试图理解方法重载的概念。
public class Demo {
public int myMethod(int num1, int num2) {
System.out.println("First myMethod of class Demo");
return num1 + num2;
}
public double myMethod(double var1, double var2) {
System.out.println("Second myMethod of class Demo");
return var1 - var2;
}
public static void main(String args[]) {
Demo obj1 = new Demo();
//here
obj1.myMethod(10, 10);
// and here
obj1.myMethod(20, 12);
}
}
我试图弄清楚为什么在 obj1.myMethod(10, 10); 和 obj1.myMethod(20, 12); 语句中缺少返回类型没有编译错误。
显然 myMethod() 都返回 int 和 double。
为什么没有编译错误?请帮我理解。
【问题讨论】:
-
你可以忽略方法返回的值。
-
因为有两个具有不同签名的重载方法,并且您调用单个方法两次 double 意味着 0.0 个浮点值
-
这是java设计本身。详情请参考:stackoverflow.com/questions/10782814/…
-
在Java中,你没有义务处理被调用方法的返回值,编译错误意味着你的代码不符合编程语言的语法。例如,您声明了一个 int 变量并通过调用具有双返回值的方法来分配它,反之亦然
-
返回类型在那里,你只是不将返回值分配给变量。
标签: java compiler-errors return-type