为了账号安全,请及时绑定邮箱和手机立即绑定

使用匿名类实例化了一个抽象类之后,如何重写其中的抽象方法并调用?

使用匿名类实例化了一个抽象类之后,如何重写其中的抽象方法并调用?

慕斯王 2019-02-22 09:26:06
public abstract class Rhythm { /** * @return duration between {@linkplain Note} in milliseconds */ public abstract long getDuration(); public void perform() { long duration = getDuration(); try { Thread.sleep(duration); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); throw new RuntimeException(ie); } } } -------------------------------------------------------------------- @Override public void play(Rhythm rhythm, Note note, NoteCallback noteCallback){ rhythm.getDuration();//想在这里重写getDuration方法,如何做到? rhythm.perform(); note.getNoteValue(); noteCallback.notePlayed(note); } -------------------------------------------------------------------- //重写成如下形式 @Override public long getDuration(){ return (expectedMs); } 代码附上。在play() 方法中如何直接重写Rhythm类中的抽象方法getDuration()呢? 创建rhythm对象是可以用匿名类的方法实例化的,那是实例化之后 想调用一个重写的getDuration()方法,有什么办法么?在不引入子类继承的前提下。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

做不了吧,如果能做Java岂不是动态语言了?

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 832 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信