Java :как инициализировать дочерний элемент, когда суперконструктору требуется параметр

у меня

class A {

    int var;
    public A(int x) {
        var = x;
    }
}


class B extends A {
     int var2;

     public B(int x, int y) {
         super(...);
         var2 = y;
         x = f(y);
     }
 }

Для подкласса B мне нужно вычислить значение x, которое используется в конструкторе A. Если бы я мог свободно перемещать superниже своего x=f(y), тогда я мог бы передать результат конструктору A (супер ). Но super должен быть первой строкой в ​​конструкторе B.

Есть ли способ инициализировать A правильным значением в первый раз? Что, если бы A.var был окончательным, и я не мог бы вернуться и изменить его после создания?

Конечно, я мог бы поставить super(f(y)), но я мог представить случаи, когда это стало бы затруднительно.

6
задан Pshemo 2 August 2012 в 22:21
поделиться