Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpIhCs 44 of 147 menu
◀ ▶

Приведение типа в Java

Переменная типа родителя не даёт вызывать методы потомка. Если в runtime там лежит Article, тип сужают явным приведением в скобках:

class Post { public String getTitle() { return "post"; } } class Article extends Post { public int getViews() { return 10; } }

Создадим потомка, приведем ссылку к Article и выведем число просмотров:

Post post = new Article(); Article article = (Article) post; System.out.println(article.getViews());

Неверное приведение бросает ClassCastException. Перед сужением типа имеет смысл проверить объект через instanceof:

public class Main { public static void main(String[] args) { Post post = new Post(); if (post instanceof Article) { Article article = (Article) post; System.out.println(article.getViews()); } } }

После успешной проверки с образцом отдельное приведение в той же ветке часто не нужно - переменная уже имеет тип потомка.

Пусть переменная типа User ссылается на объект класса Employee.

Приведите переменную к типу Employee и выведите на экран зарплату сотрудника.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить