Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 February 21

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Скажем

class A {
 int x;
}

class B extends A {
 int y;
}
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
B b = B();
тут я смогу вызвать у объекта и x и y
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Могу ли я сделать:
A x;
x = A();
x = B();
x = C();

?
Окей, если с этим разобрались, давай усложним
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Теперь мы захотим не перезаписывать переменную, а сохранить все объекты что мы создали.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Перепиши пример так, чтоб был создан список и потом в него добавь поочередно объекты A, B и С
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
я уже понял твою мысль, спасибо
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Естественно со строгой типизацией
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ну раз понял - пиши
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Прям по шагам сча дойдем до того что ты там у себя делаешь
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
ну оно остается как List<A> так как это верхний общий тип
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ну выкладывай что написал
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
  List<A> list = [];
 list.add(A());
 list.add(B());
}
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Victor
  List<A> list = [];
 list.add(A());
 list.add(B());
}
дженерик у списка не указал.
вообще внутри функций по правилам писать так:

final list = <A>[];
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ну окей
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Едем дальше
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
А теперь тебе надо поместить уже 3 объекта таких типов в список.
C больше не расширяет A.

class A {}
class B extends A {}
class C {}
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
А теперь тебе надо поместить уже 3 объекта таких типов в список.
C больше не расширяет A.

class A {}
class B extends A {}
class C {}
ну возвращаемся к тому  с чего начали, нужен юнион
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Victor
ну возвращаемся к тому  с чего начали, нужен юнион
Не нужен
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Пробуй
источник