覆盖嵌套类成员
为了进行单元测试,我需要重写下面的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