在最近的项目中,我必须在同一个functions
中编写大量class
,其中包含类似的前几个参数,如下所示:
doA(string t, int x);
doB(string t, int x, object y);
....
doN(string t, int x, object... ns);
我们是否可以使用function
通用doA()
函数,以便extend doA
函数必须具有2个参数string t, int x
的任何函数?作为doB extends doA(object y)
代替上面的doB()
?
答案 0 :(得分:0)
您无法扩展方法签名。在Java中extends
允许类和接口;不是方法。要在多个方法之间共享公共参数,您可以将它们更改为实例变量。
e.g。
class YourClass {
String t;
int x;
}
答案 1 :(得分:0)
是的,如果您这样做:
class A{
// not accessible by child
private void doA(int a){
...
}
// accessible by child and B can be null
public void doA(int a, Long B){
doA(a);
}
}
class B extends A{
@override
public void doA(int a, Long b){
...
}
}
我希望我的问题是正确的。
如果您需要访问A的私有方法,可以使用反射更改其辅助功能。