Прошу прощения, если эти пустые значения/переменные не являются общими элементами, я действительно не уверен в терминологии в Java.Наследование в Java с помощью общих элементов
Мы получили этот код:
public class AbstrClass <T, S> {
private T value1;
protected S value2;
protected AbstrClass (T value1, S value2) {
this.value1 = value1;
this.value2 = value2;
}
public T getValue1() {
return value1;
}
public S getValue2() {
return value2;
}
}
public class Impl extends AbstrClass<String, Double> {
protected Integer value2;
public Impl (String value1, int value2) {
super("Ferdinand", (double) value2);
this.value2 = value2 + value2;
}
public void incrementValue2 (Integer value) {
super.value2 += value;
}
public static void main(String[] args) {
Impl impl = new Impl("Horst", 21);
System.out.println(impl.getValue1());
System.out.println(impl.getValue2());
impl.incrementValue2(42);
System.out.println(impl.value2);
System.out.println(impl.getValue2());
}
}
И тогда мы спросили, что результат был, если мы запустим код/main
метод и почему.
Я не уверен, если мои рассуждения правильно:
- Ferdinand -> б/с он выполняет метод, наследуемый от основания
AbstrClass
, и так как это уже значение, он выводит, что один. - 21.0 -> b/c он выдает метод, который он наследует от
AbstrClass
, но в нем нет значения, поэтому он выдает заданное значение 21, но как double, так как он определен вImpl
как двойной стоимость. - 42 -> этого я действительно не понимаю.
- 63,0 -> снова это exectues от
AbstrClass
(см вопрос 2), и мы добавим 42 из метода приращений, что приводит к 63.
ли мои рассуждения правильны, и почему третий System.out.println
привести к 42?