覆盖嵌套类成员

为了进行单元测试,我需要重写下面的NESTED类中的deriveCalculatedData的定义。
是否有可能通过匿名类重写实现它?
我将如何调用此后的非默认构造函数?覆盖嵌套类成员

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);

以上是 覆盖嵌套类成员 的全部内容, 来源链接: utcz.com/qa/261335.html

回到顶部