Java 重写函数中的抽象

Java 重写函数中的抽象,java,Java,我想为send()添加一个额外的参数 在DumpSequence.java中: private static Receiver sm_receiver = new DumpReceiver(System.out, true); sm_receiver.send(message, lTicks); (Work) sm_receiver.send(message, lTicks, addParam1); (Won't work) dumnreceiver.java我试图添加额外的参数,它是lTi

我想为send()添加一个额外的参数

在DumpSequence.java中:

private static Receiver sm_receiver = new DumpReceiver(System.out, true);

sm_receiver.send(message, lTicks); (Work)
sm_receiver.send(message, lTicks, addParam1); (Won't work)
dumnreceiver.java我试图添加额外的参数,它是lTimeStamp2:

public void send(MidiMessage message, long lTimeStamp, long lTimeStamp2) {...}
错误:

DumpSequence.java:136: send(javax.sound.midi.MidiMessage,long) in javax.sound.mi
di.Receiver cannot be applied to (javax.sound.midi.MidiMessage,long,long)
                sm_receiver.send(message, lTicks, lTicks);
                           ^
.\DumpReceiver.java:21: DumpReceiver is not abstract and does not override abstr
act method send(javax.sound.midi.MidiMessage,long) in javax.sound.midi.Receiver
public class DumpReceiver
       ^
2 errors

如果您扩展一个抽象类,它需要定义所有的抽象方法,或者它需要是抽象类

或者,如果您正在重载方法,则只需删除
@Override
注释即可

另请参见


如果扩展抽象类,则需要定义所有抽象方法,或者需要是抽象类

或者,如果您正在重载方法,则只需删除
@Override
注释即可

另请参见


如果要调用
send(MidiMessage message,long-lTimeStamp,long-lTimeStamp 2)
则需要使用
DumpReceiver
实例,而不是
Receiver
实例。“接收器”中没有这种方法

private static DumpReceiver sm_receiver = new DumpReceiver(System.out, true);

编辑:通过继承,您仍然可以将其用作普通的
接收器
对象。

如果您想调用
发送(MidiMessage message,long lTimeStamp,long lTimeStamp 2)
您需要使用
DumpReceiver
实例,而不是
接收器
实例。“接收器”中没有这种方法

private static DumpReceiver sm_receiver = new DumpReceiver(System.out, true);


编辑:通过继承,您仍然可以将其用作普通的
接收器
对象。

从第21行删除@Override注释从第21行删除@Override注释您仍然需要实现
发送(javax.sound.midi.MidiMessage,long)
,即使您不使用它-这是您实现的接口所必需的

您仍然必须实现
send(javax.sound.midi.MidiMessage,long)
,即使您不使用它-这是您实现的接口所必需的

好吧,他没有这样要求。他想在
send
方法中添加一个参数,并从
sm\u receiver
调用它,一个
receiver
variable@Serabe我稍后再看它…已经包含在答案中了,我没有使用任何“@重写注释”。然后把第一部分当作答案:我决定使用全局变量方法。他想在
send
方法中添加一个参数,并从
sm\u receiver
调用它,一个
receiver
variable@Serabe我稍后再看它…已经包含在答案中了,我没有使用任何“重写注释”。然后把第一部分当作答案:我决定使用全局变量方法。我相信这是一个界面,不是抽象的。是否有方法将DumpSequence.java中的值传递给dumpreceiver.java?我知道Java没有读取全局变量的能力。您是否修改了正确的变量?此外,如果你发现自己这样做,这通常是一个坏主意(TM)。可能有一个变通方法可以使用,因此这不是必需的。是的,修改正确的变量。我对Java的知识有限,有一种方法可以使用两步方法,但对我来说不是很有效。还是同样的错误,我相信这是一个接口,不是抽象的。是否有方法将DumpSequence.java中的值传递给dumpreceiver.java?我知道Java没有读取全局变量的能力。您是否修改了正确的变量?此外,如果你发现自己这样做,这通常是一个坏主意(TM)。可能有一个变通方法可以使用,因此这不是必需的。是的,修改正确的变量。我对Java的知识有限,有一种方法可以使用两步方法,但对我来说效率不高。有没有一种方法可以将DumpSequence.Java中的值传递给dumpreceiver.Java?我知道Java没有读取全局变量的能力。有没有办法将DumpSequence.Java中的值传递给dumpreceiver.Java?我知道Java没有读取全局变量的能力。