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 για προσδιορισμό του τύπου με έλεγχο ασφαλείας.