ClassCastException к дочернему классу
У меня есть родительский класс Hexagon и дочерний MinecraftHexagon.
public MinecraftHexagon extends Hexagon {
public MinecraftHexagon(HexagonGrid grid, long q, long r) {
super(grid, q, r);
}
}
Я пытаюсь кастовать Hexagon к MinecraftHexagon
Hexagon hexagon = new Hexagon(grid, 4L, 9L);
hexagons[0] = (MinecraftHexagon) hexagon;
Выдаёт ClassCastException:
Exception in thread "main" java.lang.ClassCastException:
Hexagon cannot be cast to MinecraftHexagon
Вроде бы я правильно привожу типы? Подскажите пожалуйста, как я могу использовать методы дочернего класса, используя родительский?
Ответы (1 шт):
Автор решения: Agzam
→ Ссылка
Просто создавайте не new Hexagon, а new MinecraftHexagon, и тогд не будет ошибки:
Hexagon hexagon = new MinecraftHexagon(grid, 4L, 9L);
hexagons[0] = (MinecraftHexagon) hexagon;
или
MinecraftHexagon hexagon = new MinecraftHexagon(grid, 4L, 9L);
hexagons[0] = hexagon;
Во втором способе даже не надо приводит типы
Так то же можно:
hexagons[0] = new MinecraftHexagon(grid, 4L, 9L);