Найти тему
DEBAGanov

Java 316. Что такое ClassCastException?

ClassCastException - это исключение времени выполнения, которое возникает в Java при попытке выполнить неверное явное приведение типов (downcasting).

Когда мы выполняем явное приведение типа данных от одного класса к другому, который является подклассом первого класса, то это может привести к ошибке времени выполнения ClassCastException, если объект не является экземпляром подкласса.

Например, предположим, у нас есть классы Animal и Dog, где класс Dog является подклассом класса Animal. Мы можем создать объект класса Animal и затем явно привести его к типу Dog, чтобы использовать методы и свойства класса Dog.

Animal animal = new Animal();
Dog dog = (Dog) animal;

Однако, если объект не является экземпляром класса Dog, то это приведет к ошибке времени выполнения ClassCastException.

Animal animal = new Animal();
Dog dog = (Dog) animal; // ClassCastException

В этом случае объект класса Animal не может быть приведен к типу Dog, так как он не является экземпляром класса Dog.

Чтобы избежать ошибки ClassCastException, можно использовать оператор instanceof для проверки типа объекта перед выполнением явного приведения:

if (animal instanceof Dog) {
Dog dog = (Dog) animal;
}

Здесь мы проверяем, является ли объект animal экземпляром класса Dog, и только если это так, выполняем явное приведение типа данных.

Таким образом, ClassCastException - это исключение времени выполнения, которое возникает при попытке выполнить неверное явное приведение типов (downcasting), и может быть избежано с помощью оператора instanceof.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov