@korolevsky_s
iOS Developer

Как, в зависимости от условия, переменной присваивать различные экземпляры классов?

Есть 3 экземпляра разных классов. Условно
Class1 class1 = new Class1();
Class2 class2 = new Class2();
Class3 class3 = new Class3();

Как создать отдельную переменную и по условию приравнивать ее различным экземплярам класса?
if (sectionNumber == 0) {

        } else if (sectionNumber == 1) {

        } else if (sectionNumber == 2) {

        }


Пробовал так, но не катит.
Class1 class1 = new Class1();
Class2 class2 = new Class2();
Class3 class3 = new Class3();

Class1 variable = new Class1();

if (sectionNumber == 0) {
              variable = class1;
        } else if (sectionNumber == 1) {
              variable = class2;
        } else if (sectionNumber == 2) {
              variable = class3;
        }


Ошибка уже на втором условии.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 3
@hasdfa
Junior
Это обычные полиморфные ссылки. Такое будет выполняться если:
class Class {}
class Class1 extends Class {}
class Class2 extends Class {}
class Class3 extends Class {}


И тогда:
Class1 class1 = new Class1();
Class2 class2 = new Class2();
Class3 class3 = new Class3();

Class variable = new Class1();

if (sectionNumber == 0)
        variable = class1;
else if (sectionNumber == 1)
        variable = class2;
else if (sectionNumber == 2)
        variable = class3;
Ответ написан
@Neonoviiwolf
Flutter developer
Потому что Class1 variable, вот если бы они наследовались от одного родителя Class.
Ответ написан
Комментировать
@Dmtm
Android
все классы наследуются от Object,
Object variable
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы