間接的に呼び出されたメソッドをオーバーライドする方法

デビッド

この質問に適切なタイトルを付ける方法がよくわかりません。できるだけ明確に説明しようと思います:。

Interface InterfaceB {
  void methodB();
}

Class ClassB implements InterfaceB {
  void methodB() {
    //...
  }
}

Class ClassA {
  InterfaceB methodA() {
    return new ClassB();
  }
}

Class MyClass {
  public static void main(String[] args) {
    ClassA a = new ClassA();
    InterfaceB b = a.methodA();
    b.methodB();  // override this guy
  }
}

ClassAとClassBを変更せずにmethodBをオーバーライドしたい。アイデアに感謝します。

CKing

これはあなたができることです:

ClassA a = new ClassA() {//extend class A

 InterfaceB methodA() {//Override methodA
    return new ClassB() {//extend class B
       void methodB() {//Override methodB
       //...
       }
    };
  }
};

クラスAまたはクラスBを変更せずにmethodBをオーバーライドしました。そうは言っても、実際にはClassAから拡張する必要はありません。を作成しfactory、それを依存関係としてClassAに渡し、パラメーターを渡して、呼び出しに使用するmethodA具体的な実装指示することclassBができます。methodB

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オーバーライドされたメソッド内で元のメソッドを呼び出す方法

分類Dev

Revealing PrototypePatternを使用してオーバーライドされたメソッドを内部的に呼び出す方法

分類Dev

[Selenium] Web要素でオーバーライドされたメソッドを呼び出す方法は?

分類Dev

スーパーコンストラクターで呼び出されるオーバーライドメソッドにメンバーを使用する方法

分類Dev

C ++の継承:オーバーライドされたときに仮想メソッドを呼び出す

分類Dev

抽象オーバーライドとして宣言されている基本メソッドを呼び出す方法

分類Dev

どのオーバーライド メソッドが実際に呼び出されるかを判断する

分類Dev

オーバーライドされた仮想メソッドを呼び出す親クラスのメソッドを呼び出す派生クラスが間違ったメソッドを呼び出す

分類Dev

Java:オーバーライドされたメソッドを呼び出すスーパーメソッドを呼び出す

分類Dev

メソッド呼び出し引数で、解凍されたdictのキーワード引数をオーバーライドする方法は?

分類Dev

スーパークラスのオーバーライドされたメソッドをいつ、どこで呼び出すかを知る方法

分類Dev

F#でパラメータタイプによってオーバーロードされたメソッドを呼び出す方法は?

分類Dev

オーバーライドされたメソッドを呼び出すクラスのメソッドをテストする

分類Dev

派生クラスでオーバーライドされたメソッドを呼び出す

分類Dev

オーバーライドされたメソッドの計算式からベースF#メソッドを呼び出す方法は?

分類Dev

オーバーライドされたメソッドのベースメソッドをオーバーライドされたメソッドから強制的に呼び出すにはどうすればよいですか?

分類Dev

子からのオーバーライドされたメソッドの呼び出しをブロックする方法

分類Dev

オーバーライドされた静的メソッドを親から呼び出す

分類Dev

派生したイミディエートオブジェクトからオーバーライドされていないベースメソッドの仮想メソッドを間接的に呼び出すときに、vtableルックアップが実行されますか?

分類Dev

基本メソッドが仮想でない場合にオーバーライドされたメソッドを呼び出す

分類Dev

メソッドをオーバーライドして基本型にキャストした後、どのメソッドが呼び出されますか?

分類Dev

Androidで呼び出されていないメソッドをオーバーライドする

分類Dev

スーパークラスのオーバーライドされたメソッドを呼び出す方法は?

分類Dev

オーバーライドされたメソッド内の匿名の内部クラス内からスーパーメソッドを呼び出す

分類Dev

OOP(PHP)-オーバーライドされたメソッドに親メソッドに従って呼び出すように強制します

分類Dev

java 匿名クラスでオーバーライドされたメソッドを呼び出すにはどうすればよいですか?

分類Dev

親メソッドでオーバーライドされたメソッド呼び出し

分類Dev

Perl-オーバーライドされたメソッドを使用すると、super()が呼び出されます。

分類Dev

なぜinnerclassのオーバーライドされたメソッドが自動的に呼び出されるのですか?

Related 関連記事

  1. 1

    オーバーライドされたメソッド内で元のメソッドを呼び出す方法

  2. 2

    Revealing PrototypePatternを使用してオーバーライドされたメソッドを内部的に呼び出す方法

  3. 3

    [Selenium] Web要素でオーバーライドされたメソッドを呼び出す方法は?

  4. 4

    スーパーコンストラクターで呼び出されるオーバーライドメソッドにメンバーを使用する方法

  5. 5

    C ++の継承:オーバーライドされたときに仮想メソッドを呼び出す

  6. 6

    抽象オーバーライドとして宣言されている基本メソッドを呼び出す方法

  7. 7

    どのオーバーライド メソッドが実際に呼び出されるかを判断する

  8. 8

    オーバーライドされた仮想メソッドを呼び出す親クラスのメソッドを呼び出す派生クラスが間違ったメソッドを呼び出す

  9. 9

    Java:オーバーライドされたメソッドを呼び出すスーパーメソッドを呼び出す

  10. 10

    メソッド呼び出し引数で、解凍されたdictのキーワード引数をオーバーライドする方法は?

  11. 11

    スーパークラスのオーバーライドされたメソッドをいつ、どこで呼び出すかを知る方法

  12. 12

    F#でパラメータタイプによってオーバーロードされたメソッドを呼び出す方法は?

  13. 13

    オーバーライドされたメソッドを呼び出すクラスのメソッドをテストする

  14. 14

    派生クラスでオーバーライドされたメソッドを呼び出す

  15. 15

    オーバーライドされたメソッドの計算式からベースF#メソッドを呼び出す方法は?

  16. 16

    オーバーライドされたメソッドのベースメソッドをオーバーライドされたメソッドから強制的に呼び出すにはどうすればよいですか?

  17. 17

    子からのオーバーライドされたメソッドの呼び出しをブロックする方法

  18. 18

    オーバーライドされた静的メソッドを親から呼び出す

  19. 19

    派生したイミディエートオブジェクトからオーバーライドされていないベースメソッドの仮想メソッドを間接的に呼び出すときに、vtableルックアップが実行されますか?

  20. 20

    基本メソッドが仮想でない場合にオーバーライドされたメソッドを呼び出す

  21. 21

    メソッドをオーバーライドして基本型にキャストした後、どのメソッドが呼び出されますか?

  22. 22

    Androidで呼び出されていないメソッドをオーバーライドする

  23. 23

    スーパークラスのオーバーライドされたメソッドを呼び出す方法は?

  24. 24

    オーバーライドされたメソッド内の匿名の内部クラス内からスーパーメソッドを呼び出す

  25. 25

    OOP(PHP)-オーバーライドされたメソッドに親メソッドに従って呼び出すように強制します

  26. 26

    java 匿名クラスでオーバーライドされたメソッドを呼び出すにはどうすればよいですか?

  27. 27

    親メソッドでオーバーライドされたメソッド呼び出し

  28. 28

    Perl-オーバーライドされたメソッドを使用すると、super()が呼び出されます。

  29. 29

    なぜinnerclassのオーバーライドされたメソッドが自動的に呼び出されるのですか?

ホットタグ

アーカイブ