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 — ტიპის განსაზღვრისთვის უსაფრთხოების შემოწმებით.