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

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

Java:可以訪問(wèn)超類的字段和方法的策略模式?

Java:可以訪問(wèn)超類的字段和方法的策略模式?

慕慕森 2021-06-21 16:08:11
我有一個(gè)抽象類Parent與抽象方法foo(),并bar()和其他非抽象方法和字段。我需要?jiǎng)?chuàng)建 4 個(gè)子類(以及以后更多)來(lái)涵蓋foo()和的不同變體的每種組合bar():fooA(), fooB(), barA(), barB()。這些變體需要訪問(wèn)Parent. 換句話說(shuō),如果 Java 支持多重繼承,那么我會(huì)有類似的東西:abstract class Parent{    abstract foo(){}    abstract bar(){}    //other fields and methods that will be accessed foo and bar are PROTECTED}abstract class FooA extends Parent{    @Override    foo(){ ... }}abstract class FooB extends Parent{    @Override    foo(){ ... }}abstract class BarA extends Parent{    @Override    bar(){ ... }}abstract class BarB extends Parent{    @Override    bar(){ ... }}class ChildAA extends FooA, BarA{   }class ChildAB extends FooA, BarB{}class ChildBA extends FooB, BarA{}class ChildBB extends FooB, BarB{}我找到了兩種解決方案,每一種都有效,但差不多。有沒(méi)有更好的方法來(lái)實(shí)現(xiàn)這種行為?我的解決方案如下:1)第一個(gè)解決方案:abstract class Parent {    foo(){         /* behaves like fooA */    }    //other fields and methods that will be accessed foo and bar are PROTECTED}class ChildAA extends Parent{    barA(){ ... }}class ChildAB extends Parent{    barB(){ ... }}class ChildBA extends ChildAA{    @Override    foo(){ /* behaves like fooB */ }|class ChildBB extends ChildAB{    @Override     foo(){ /* behaves like fooB */ }}這樣做的問(wèn)題是它重復(fù)了fooB()所有只fooB()需要的附加方法的代碼。當(dāng)需要更多變化時(shí),問(wèn)題會(huì)呈指數(shù)級(jí)惡化。
查看完整描述

2 回答

  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報(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)