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