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