方法重载错误

时间:2014-11-02 16:15:45

标签: java methods overloading velocity

我的速度法不断给我一个错误说

“在”Velocity“类型中找不到名为'velocity'的方法的适用重载。也许你想要重载版本'void velocity(double distance,double time)抛出java.io.IOException;'代替?“

我不确定如何解决这个问题,但如果你们能提供帮助,那就太棒了,谢谢。

无论如何,这是代码:

import java.io.*;
public class Velocity
{
public static void main (String[] args)
{
    velocity ();
}


public static void velocity (double distance, double time) throws IOException
{
    BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));
    System.out.println ("Please input distance in meters:");
    distance = Double.parseDouble (myInput.readLine ());
    System.out.println ("Please input time in seconds:");
    time = Double.parseDouble (myInput.readLine ());
    System.out.println ("Therefore your velocity is " + distance / time + " m/s.");
}
}

2 个答案:

答案 0 :(得分:2)

您正在尝试调用方法velocity();相反,你应该打电话给

velocity (1d, 2d);

这是错误的原因。

关于重载:

如果你有另一个同名的方法,如:

public static void velocity() throws IOException () {
   //body
}

然后你在这里重载方法速度。所以定义它应该有效。

答案 1 :(得分:0)

编译器可以找到的唯一方法是:

public static void velocity (double distance, double time) throws IOException

你在main中的调用是没有任何参数的方法速度。没有这样的方法。编译器正在寻找具有相同名称的静态方法,并且基本上说“这就像我发现你正在调用的那样接近,这是你的意思吗?”#39;。

假设您正在尝试调用静态方法,则需要传递距离和时间的争论。