Я определил два класса ниже:
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
в junkChild
, не переписывая DoSomething()
снова. Даже если мне придется написать это снова, код будет точно таким же, поэтому должен быть способ, которым я мог бы сделать эту работу без необходимости писать это. Функция DoSomething
должна проверять, имеет ли тип a1
метод add
правильного типа ввода и возврата, и, если это так, вызывать его, не беспокоясь о типе a
, b
, c
являются.
Можно ли это сделать?