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 — түрүн тактоо үчүн, коопсуздук текшерүүсү менен.