Sobes.tech
Junior
135
questionbank

Что такое приведение типов (casting) в Java?

AI答案

sobes.tech AI

Приведение типов (casting) в Java — это преобразование значения одного типа данных в другой тип данных.

Виды приведения:

  • Явное (Explicit Casting): Выполняется программистом с помощью оператора (тип). Используется для преобразования из "большего" типа в "меньший" (например, double в int). Может привести к потере данных.
    // implicit casting (автоматическое)
    int a = 10;
    double b = a; // int to double
    
    // explicit casting (явное)
    double c = 10.5;
    int d = (int) c; // double to int, d будет равно 10
    
  • Неявное (Implicit Casting / Widening Conversion): Выполняется JVM автоматически, когда происходит преобразование из "меньшего" типа в "больший" (например, int в double). Безопасно, не приводит к потере данных.
    int x = 10;
    double y = x; // int automatically cast to double
    

Приведение типов может быть между примитивными типами или между объектными типами в иерархии наследования.

При приведении объектных типов:

  • Upcasting: Приведение подкласса к его суперклассу. Является неявным и безопасным.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Приведение суперкласса к его подклассу. Требует явного приведения и может вызвать ClassCastException во время выполнения, если объект на самом деле не является экземпляром целевого подкласса.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - требует явного приведения и проверки instanceof
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Теперь можно использовать методы специфичные для Dog
    }