我在下面定义了两个类:
public class junk {
private BigInteger a = BigIngeger.valueOf(1), b=BigInteger.valueOf(2), c;
public void DoSomething() {
c = a.add(b);
}
// ... other stuff here
}
public class junkChild extends junk {
private BigDecimal a = BigDecimal.valueOf(1), b=BigDecimal.valueOf(2), c;
// I want a, b, c to override the original BigInteger a,b,c
// ... other stuff here
}
public class myClass {
public static void main(String args[]) {
junk a1 = new junkChild();
a1.DoSomething();
}
}
不幸的是,上述方法不起作用。
我想要做的是简单地更改a
, b
,c
为BigDecimal
injunkChild
而无需再次重写DoSomething()
。即使我必须再次编写它,代码也会完全相同,所以应该有一种方法可以让我无需编写它就可以完成这项工作。该DoSomething
函数应该检查该类型a1
是否具有add
正确输入和返回类型的方法,如果是,则调用它而不用担心类型a
, b
,c
是什么。
这可以做到吗?