Junior
Co je to přetypování (casting) v Java?
sobes.tech AI
Odpověď od AI
Převod typů (casting) v Javě je převod hodnoty jednoho datového typu na jiný datový typ.
Druhy převodů:
- Explicitní (zjevný) casting: Provádí jej programátor pomocí operátoru
(typ). Používá se k převodu z "většího" typu na "menší" (například zdoublenaint). Může dojít ke ztrátě dat.// implicitní převod (automatický) int a = 10; double b = a; // int na double // explicitní převod (zřejmý) double c = 10.5; int d = (int) c; // double na int, d bude 10 - Implicitní (automatický) převod (Widening Conversion): Provádí se automaticky JVM, když se převádí z "menšího" typu na "větší" (například z
intnadouble). Je bezpečný a nezpůsobí ztrátu dat.int x = 10; double y = x; // int automaticky na double
Převod typů může probíhat mezi primitivními typy nebo mezi objekty v hierarchii dědičnosti.
U převodu objektů:
- Upcasting: Převod podtřídy na její nadtřídu. Je implicitní a bezpečný.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Převod nadtřídy na její podtřídu. Vyžaduje explicitní převod a může vyvolat
ClassCastExceptionza běhu, pokud objekt není skutečně instancí cílové podtřídy.Animal animal = new Dog(); // Upcasting // Downcasting - vyžaduje explicitní převod a kontrolu pomocí instanceof if (animal instanceof Dog) { Dog dog = (Dog) animal; // Nyní lze používat metody specifické pro Dog }