Sobes.tech
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.