簡體   English   中英

覆蓋嵌套的類成員

[英]Overriding nested class member

為了進行單元測試,我將需要覆蓋下面的NESTED類中的generateCalculatedData的定義。
是否可以通過匿名類重寫來實現?
此后我將如何調用非默認構造函數?

Class A{


    static class B{

     B(String a,String b){ ... }
     int deriveCalculatedData(){....}
   }

   main(){

      int i = new A.B(x,y).deriveCalculatedData();//Override,and create instance
   } 
}

是的,有可能。 您只需要為該嵌套class創建一個新的實現或擴展。

通過匿名類:

// pass arguments to constructor like normal
B b = new A.B(str1, str2){
    @Override
    int deriveCalculatedData(){
        // your stuff
        return -1;
    }
};

或通過一個全新的類文件,因此您可以重用它:

public class C extends A.B {

    public C(String str1, String str2){
        // pass arguments to super constructor
        super(str1, str2);
    }

    @Override
    int deriveCalculatedData(){
        // your stuff
        return -1;
    }
}

// call it from somewhere with arguments
C c = new C(str1, str2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM