Материал: 3 - Презентация

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Центр дистанционного обучения

Полиморфизм – как?

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

Источник: https://studfile.net/preview/16403813/