第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何通過(guò)您正在擴(kuò)展的類重寫方法,同時(shí)仍在您要重寫的原始類中運(yùn)行代碼?

如何通過(guò)您正在擴(kuò)展的類重寫方法,同時(shí)仍在您要重寫的原始類中運(yùn)行代碼?

森欄 2023-07-28 16:10:34
我有一個(gè)游戲系統(tǒng),其基類名為GameRoom.在本課程中,我有一些適合每個(gè)GameRoom實(shí)例所需的樣板代碼。在各個(gè)房間類中,我擴(kuò)展了該類GameRoom,覆蓋了基類的update和方法,但這使得我的圖塊地圖等無(wú)法渲染。renderGameRoom我希望樣板代碼保持渲染,同時(shí)能夠在子GameRoom類中運(yùn)行自定義代碼(具有完全相同的名稱)。我怎么做?
查看完整描述

2 回答

?
天涯盡頭無(wú)女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以使用super而不是調(diào)用重寫的方法this。


class Example extends Parent {

  @Override

  void method() {

    super.method(); // calls the overridden method

  }

}

如果你想強(qiáng)制每個(gè)子類調(diào)用父類的方法,Java 并沒(méi)有為此提供直接的機(jī)制。但是您可以使用調(diào)用抽象函數(shù)的最終函數(shù)來(lái)允許類似的行為(模板方法)。


abstract class Parent {

  final void template() { // the template method

    System.out.println("My name is " + this.nameHook());

  }

  protected abstract String nameHook(); // the template "parameter"

}


class Child {

  @Override

  protected String nameHook() {

    return "Child"

  }

}

然后你可以通過(guò)調(diào)用模板方法來(lái)運(yùn)行程序,該方法僅由父類定義,并且它會(huì)調(diào)用子類的鉤子方法,子類都必須實(shí)現(xiàn)這些方法。


查看完整回答
反對(duì) 回復(fù) 2023-07-28
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果你有類似的東西:


abstract class Room{

    abstract void render(Canvas c){

        //impl goes here

    }

}

然后在你的子類中你可以這樣做:


class SpecificRoom extends Room{

    void render(Canvas c){

        super.render(c);//calls the code in Room.render

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-07-28
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)