Junior — Middle
Magyarázza el, mi az a típuskonverzió az objektum-orientált nyelvekben, példákkal UpCast és DownCast
sobes.tech MI
Válasz az MI-től
Objektumorientált nyelvekben, mint például a C#, a típusátalakítás az egyik típusú objektum átalakítása egy másik típusúvá, amely a öröklési hierarchiában kapcsolódik hozzá.
UpCast az alosztályból a szülőosztályba történő átalakítás. Ez mindig biztonságos, és nem igényel kifejezett utasítást, mivel az alosztály tartalmazza az összes szülőosztály tagját.
class Animal {}
class Dog : Animal {}
Dog dog = new Dog();
Animal animal = dog; // UpCast — implicit átalakítás
DownCast a szülőosztályból az alosztályba történő átalakítás. Ez veszélyes lehet, mivel az alapobjektum nem feltétlenül példány az alosztályból. Általában kifejezett átalakítást és ellenőrzést igényel.
Animal animal = new Dog();
Dog dog = (Dog)animal; // DownCast — kifejezett átalakítás
Animal anotherAnimal = new Animal();
Dog anotherDog = anotherAnimal as Dog; // Null-t ad vissza, ha az átalakítás nem lehetséges
Így az UpCast általánosításra szolgál, míg a DownCast a típus pontosítására biztonsági ellenőrzéssel.