Sobes.tech
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-ը՝ տիպը հստակեցնելու համար անվտանգության ստուգմամբ։