Как инициализировать класс, с помощью объекта

Заранее прошу прощение, если сформулировал вопрос немного некорректно

Vana result = new Vana("Ravak", 1, 2, 3);
Vana instance = new Vana("Ravak", new Rozmer(1, 2, 3));

Нужно сделать конструкторы, которые бы инициализировали клаcc vana(это тест)

    Vana(String ravak, double delka, double sirka, double vyska){
        super(delka,sirka,vyska);
        this.ravak=ravak;
    }

    public Vana(String ravak, Rozmer rozmer) {
        super(rozmer);
        this.ravak=ravak;
    }

Так выглядит код, который я написал, но только второй инициализатор, где должен проходить объект, выдает ошибку. Я понимаю, что вариант однозначно неправильный, но как взять из него информацию, которую задали в начале?

public Rozmer(final double delka, final double sirka, final double vyska) throws MojeException {
        if (!check(delka) || !check(sirka) || !check(vyska)) throw new MojeException("Chyba");
        this.delka = Math.round(delka*TO_CM);
        this.sirka = Math.round(sirka*TO_CM);
        this.vyska = Math.round(vyska*TO_CM);
    }

Это конструктор наследственного класса, на который я ссылаюсь. Работать можно только с кодом, где конструкторы


Ответы (1 шт):

Автор решения: Nowhere Man

Итак:

  • в классе Rozmer определён только один конструктор, принимающий все три размера,
  • в классе Vana, унаследованном от Rozmer, есть работающий конструктор:
class Vana extends Rozmer {
    Vana (String ravak, double delka, double sirka, double vyska) {
        super(delka, sirka, vyska);
        this.ravak = ravak;
    }
}

Тогда конструктор класса Vana, принимающий аргумент Rozmer, можно определить так:

// class Vana
    public Vana (String ravak, Rozmer rozmer) {
        this(ravak, rozmer.delka, rozmer.sirka, rozmer.vyska);
    }
→ Ссылка