Junior — Middle
Μπορεί να οριστεί μια εικονική λειτουργία σε μια μη κληρονομική κλάση;
sobes.tech AI
Απάντηση από AI
Στη C#, μια εικονική λειτουργία (μέθοδος) προορίζεται να υπερισχύσει σε κλάσεις παράγωγες. Αν μια κλάση δηλωθεί ως sealed (σφραγισμένη), μπορεί να οριστούν εικονικές μέθοδοι σε αυτήν, αλλά δεν μπορούν να υπερισχύσουν, καθώς η κληρονομιά απαγορεύεται.
Παράδειγμα:
sealed class MyClass
{
public virtual void MyMethod()
{
Console.WriteLine("Εικονική μέθοδος σε σφραγισμένη κλάση");
}
}
Εδώ, η μέθοδος MyMethod είναι εικονική, αλλά επειδή η κλάση MyClass είναι σφραγισμένη, κανείς δεν μπορεί να την κληρονομήσει και να υπερισχύσει αυτήν τη μέθοδο. Έτσι, εικονικές μέθοδοι σε μια μη-κληρονομούμενη κλάση είναι τεχνικά δυνατές, αλλά η σημασία τους είναι περιορισμένη.