Junior — Middle
Ներկայացրեք, թե ինչ է տիպի փոխարկումը օբյեկտային կողմնորոշված լեզուներում, օգտագործելով UpCast և DownCast օրինակներ
sobes.tech AI
Պատասխան AI-ից
Օբյեկտ-ուղղված լեզուներում, ինչպիսիք են C#, տիպի փոխարկումը՝ դա օբյեկտի մեկ տիպից մյուսին փոխարկումն է, որը կապված է ժառանգության հիերարխիայով:
UpCast — դա ժառանգական դասից հիմնական դասին փոխարկումն է։ Դա միշտ անվտանգ է և չի պահանջում բացահայտ նշում, քանի որ ժառանգական դասը պարունակում է հիմնական դասի բոլոր անդամները:
class Animal {}
class Dog : Animal {}
Dog dog = new Dog();
Animal animal = dog; // UpCast — անբացահայտ փոխարկում
DownCast — դա հիմնական դասից ժառանգական դասին փոխարկումն է։ Դա կարող է լինել անանվտանգ, քանի որ հիմնական օբյեկտը պարտադիր չէ, որ լինի ժառանգական դասի օրինակ։ Հաճախ պահանջում է բացահայտ փոխարկում և ստուգում:
Animal animal = new Dog();
Dog dog = (Dog)animal; // DownCast — բացահայտ փոխարկում
Animal anotherAnimal = new Animal();
Dog anotherDog = anotherAnimal as Dog; // Վերադարձնում է null, եթե փոխարկումը հնարավոր չէ
Այսպիսով, UpCast-ը օգտագործվում է ընդհանուրեցնելու համար, իսկ DownCast-ը՝ տիպը հստակեցնելու համար անվտանգության ստուգմամբ։