色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

java - 使用匿名類實例化了一個抽象類之后,如何重寫其中的抽象方法并調用?

瀏覽:126日期:2024-02-08 17:18:02

問題描述

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()方法,有什么辦法么?在不引入子類繼承的前提下。

問題解答

回答1:

java不能怎么做,但能用內部類變相的實現這個需求

public abstract class Rhythm { /** * @return duration between {@linkplain Note} in milliseconds */ public abstract long getDuration();public abstract class InnderClass {public abstract long getDuration(); } private InnderClass innderClass; public Rhythm() {innderClass = new InnderClass() { @Override public long getDuration() {return Rhythm.this.getDuration(); }}; } public void setInnderClass(InnderClass innderClass) {this.innderClass = innderClass; } public void perform() {long duration = innderClass.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.setInnderClass(rhythm.new InnderClass() {@Override public long getDuration() {// TODO 把實現放到這里return 0; }});rhythm.perform();note.getNoteValue();noteCallback.notePlayed(note); }回答2:

做不了吧,如果能做Java豈不是動態語言了?

標簽: java
主站蜘蛛池模板: 国产精品免费视频能看 | 手机国产精品一区二区 | 国产99久9在线视频 国产99久久 | 久久亚洲高清观看 | 日本三级日产三级国产三级 | 二区中文字幕 | 国产日韩精品视频一区二区三区 | 91久久国产精品 | 亚洲精品国产男人的天堂 | 87精品福利视频在线观看 | 亚洲天堂中文网 | 久久久久久久久中文字幕 | 亚洲小视频在线播放 | 在线视频免费观看a毛片 | 国产黄a三级三级看三级 | 欧美黑人巨大最猛性xxxxx | 成人免费午夜视频 | 国产一级一级 | 亚洲日本精品 | 中文字幕亚洲天堂 | 在线视频一区二区日韩国产 | 日本www免费视频网站在线观看 | 亚洲视频中文字幕 | 欧美人成毛片在线播放 | 国产一区二区影视 | 久草视频在线播放 | 精品自拍视频在线观看 | 亚洲欧美一级视频 | 国产欧美日韩高清专区手机版 | 国产精品永久免费视频观看 | 中国一级做a爰片久久毛片 中日韩欧美一级毛片 | 日本一级毛片视频无遮挡免费 | 国产在线不卡视频 | 亚洲自偷自偷图片在线高清 | 欧美精品一二区 | 国产成人精品三区 | 国产成人久久精品一区二区三区 | 久久久久久久国产高清 | 久久久久综合国产 | a毛片在线观看 | 亚洲手机国产精品 |