Центр дистанционного обучения
Полиморфизм – как?
Circle c1 = new Circle(0, 0, 2); Shape s1 = c1;
System.out.println(s1.getArea()); // ошибка!
Статический тип s1 – Shape, в этом классе не определен метод getArea().
online.mirea.ru
Центр дистанционного обучения
Полиморфизм – как?
Circle c1 = new Circle(0, 0, 2); Shape s1 = c1;
if (s1 instanceof Circle) {
Circle c2 = (Circle) s1; // приведение типа System.out.println(c2.getArea());
}
Оператор instanceof проверяет объект на принадлежность классу
online.mirea.ru
Центр дистанционного обучения
Полиморфизм – как?
Для null instanceof всегда возвращает false, так как тип времени выполнения отсутствует
online.mirea.ru
Центр дистанционного обучения
Java 15
Circle c1 = new Circle(0, 0, 2); Shape s1 = c1;
if (s1 instanceof Circle c2) { System.out.println(c2.getArea());
}
online.mirea.ru
Центр дистанционного обучения
Полиморфизм – как?
Circle c1 = new Circle(0, 0, 2); Shape s1 = c1;
Rectangle r1 = (Rectangle) s1;
// ClassCastException – s1 является Circle
online.mirea.ru