I have defined two classes below.
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();
}
}
Unfortunately the above does not work. What I want to do is to simply change a
, b
, c
to BigDecimal
in junkChild
without rewriting DoSomething()
again. Even if I have to write it again, the code will be exactly the same, so there should be a way I can make this work without having to write it. The DoSomething
function should check that the type a1
has an add
method of the correct input and return type, and if so, invoke it without being worried about what type a
, b
, c
are. Can this be done