Junior
Какво е преобразуване на типове (casting) в Java?
sobes.tech AI
Отговор от AI
Преобразуването на типове (casting) в Java е преобразуването на стойността на един тип данни в друг тип данни.
Видове преобразувания:
- Явно (Explicit Casting): Извършва се от програмиста с помощта на оператора
(тип). Използва се за преобразуване от "по-голям" тип към "по-малък" (например, отdoubleкъмint). Може да доведе до загуба на данни.// автоматично преобразуване (implicit) int a = 10; double b = a; // int към double // явно преобразуване (explicit) double c = 10.5; int d = (int) c; // double към int, d ще бъде 10 - Имплицитно (автоматично) преобразуване (Widening Conversion): Извършва се автоматично от JVM, когато се преобразува от "по-малък" към "по-голям" тип (например, от
intкъмdouble). Безопасно е и не води до загуба на данни.int x = 10; double y = x; // int автоматично към double
Преобразуването на типове може да се случи между примитивни типове или между обектни типове в йерархията на наследяване.
При преобразуване на обектни типове:
- Upcasting: Преобразуване на подклас към неговия суперклас. Е implicit и безопасен.
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 }