Sobes.tech
Junior — Middle

Είναι δυνατόν να αλλάξετε τη λειτουργικότητα μιας μεθόδου υπερασπιζόμενοι την σε μια κληρονομούμενη κλάση;

sobes.tech AI

Απάντηση από AI

Ναι, στη C# είναι δυνατή η τροποποίηση της λειτουργικότητας μιας μεθόδου επαναπροσδιορίζοντάς την σε μια κλάση που κληρονομεί. Για αυτό, η βασική μέθοδος πρέπει να δηλωθεί με τη λέξη-κλειδί virtual, και στην κλάση που κληρονομεί μπορεί να επαναπροσδιοριστεί με τη λέξη-κλειδί override.

Παράδειγμα:

class BaseClass
{
    public virtual void ShowMessage()
    {
        Console.WriteLine("Μήνυμα από τη βασική κλάση");
    }
}

class DerivedClass : BaseClass
{
    public override void ShowMessage()
    {
        Console.WriteLine("Υπερκαθορισμένο μήνυμα από την κλάση που κληρονομεί");
    }
}

Η κλήση της μεθόδου ShowMessage σε ένα αντικείμενο της DerivedClass θα εκτελέσει την υπερκαθορισμένη έκδοση της μεθόδου.