3. Преобразование ссылочных типов


3. Преобразование ссылочных типов

Ссылочные типы (классы, интерфейсы, массивы) также могут преобразовываться, но это регулируется иерархией наследования.

• Принцип подстановки (Substitution Principle): Переменной заданного типа может быть присвоено значение любого подтипа этого типа. Метод с параметром определенного типа может быть вызван с аргументом любого подтипа. Это позволяет неявно преобразовывать подкласс в суперкласс (восходящее преобразование).

• Явное приведение (Downcasting): Для присваивания ссылки на суперкласс переменной подкласса требуется явное приведение типов (например, (Integer)stack.pop()).

• Проверка типов (instanceof): Перед явным приведением часто необходимо убедиться, что объект действительно принадлежит к целевому типу, чтобы избежать ошибки ClassCastException во время выполнения.

    ◦ Пример: if (o instanceof Integer) { ... }.

• Pattern Matching (сопоставление с образцом): В современных версиях Java (начиная с Java 14/16/21) оператор instanceof и конструкция switch поддерживают сопоставление с образцом. Это позволяет избежать явного приведения типов после проверки. Например, case Apparel apparel -> ... автоматически объявляет переменную apparel нужного типа.

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:


3. Преобразование ссылочных типов

Ссылочные типы (классы, интерфейсы, массивы) также могут преобразовываться, но это регулируется иерархией наследования.

• Принцип подстановки (Substitution Principle): Переменной заданного типа может быть присвоено значение любого подтипа этого типа. Метод с параметром определенного типа может быть вызван с аргументом любого подтипа. Это позволяет неявно преобразовывать подкласс в суперкласс (восходящее преобразование).

• Явное приведение (Downcasting): Для присваивания ссылки на суперкласс переменной подкласса требуется явное приведение типов (например, (Integer)stack.pop()).

• Проверка типов (instanceof): Перед явным приведением часто необходимо убедиться, что объект действительно принадлежит к целевому типу, чтобы избежать ошибки ClassCastException во время выполнения.

    ◦ Пример: if (o instanceof Integer) { ... }.

• Pattern Matching (сопоставление с образцом): В современных версиях Java (начиная с Java 14/16/21) оператор instanceof и конструкция switch поддерживают сопоставление с образцом. Это позволяет избежать явного приведения типов после проверки. Например, case Apparel apparel -> ... автоматически объявляет переменную apparel нужного типа.

https://webprogr.ru/~yYQYc
Короткая ссылка на новость:https://webprogr.ru/~yYQYc


Последние новости

3. Преобразование ссылочных типов


3. Преобразование ссылочных типов

Ссылочные типы (классы, интерфейсы, массивы) также могут преобразовываться, но это регулируется иерархией наследования.

• Принцип подстановки (Substitution Principle): Переменной заданного типа может быть присвоено значение любого подтипа этого типа. Метод с параметром определенного типа может быть вызван с аргументом любого подтипа. Это позволяет неявно преобразовывать подкласс в суперкласс (восходящее преобразование).

• Явное приведение (Downcasting): Для присваивания ссылки на суперкласс переменной подкласса требуется явное приведение типов (например, (Integer)stack.pop()).

• Проверка типов (instanceof): Перед явным приведением часто необходимо убедиться, что объект действительно принадлежит к целевому типу, чтобы избежать ошибки ClassCastException во время выполнения.

    ◦ Пример: if (o instanceof Integer) { ... }.

• Pattern Matching (сопоставление с образцом): В современных версиях Java (начиная с Java 14/16/21) оператор instanceof и конструкция switch поддерживают сопоставление с образцом. Это позволяет избежать явного приведения типов после проверки. Например, case Apparel apparel -> ... автоматически объявляет переменную apparel нужного типа.

Рейтинг@Mail.ru