Не могу понять один момент по полиморфизму. Его можно представить в виде игры.
Допустим у нас есть типы персонажей игры, которые наследуются от общего типа Hero.
class Hero {
}
class Hero1 extends Hero {
}
class Hero2 extends Hero {
}
class Hero3 extends Hero {
}
class Hero4 extends Hero {
}
class Hero5 extends Hero {
}
class Hero6 extends Hero {
}
Мы можем из трех типов персонажей сформировать команду, передав в их в конструктор.
public class Test {
public static void main(String[] args){
Hero2 hero2 = new Hero2();
Hero4 hero4 = new Hero4();
Hero6 hero6 = new Hero6();
Team team = new Team(hero2,hero4,hero6);
}
}
class Team {
public Team(Hero hero1, Hero hero2, Hero hero3){
//
}
}
Конструктор команды с общими параметрами Hero т.к мы не знаем какого типа персонажей выберут игроки.
Как после создания класса понять каких персонажей передали игроки в конструктор?
Только явно приводить к имеющимся типам если получится и если тип не совпадает ловить исключения?