Sobes.tech
Junior — Middle

გახდება ობიექტი შეცვალოს თუ მისი მეთოდი ქვესაფარში გადაწერილი იქნება?

sobes.tech AI

პასუხი AI-სგან

თუ ქვესინკლში ბაზისკლასის მეთოდი გადაწერეთ, მაშინ ამ მეთოდის გამოძახებისას ქვესინკლის ობიექტზე გამოიყენება ახალი რეალიზაცია. ობიექტი როგორც ქვესინკლსის ნიმუში არ იცვლება, მაგრამ მეთოდის ქცევა იცვლება. ეს საშუალებას იძლევა ფუნქციონალობის შეცვლა ან გაფართოება მოხდეს, არ შეცვალოს თავდაპირველი კლასი.

C# მაგალითი:

class BaseClass
{
    public virtual void ShowMessage()
    {
        Console.WriteLine("ძირითადი კლასი მესიჯით");
    }
}

class DerivedClass : BaseClass
{
    public override void ShowMessage()
    {
        Console.WriteLine("ქვესინკლიდან მესიჯი");
    }
}

// გამოყენება
BaseClass obj = new DerivedClass();
obj.ShowMessage(); // გამოიტანს: "ქვესინკლიდან მესიჯი"

ამ გზით, ობიექტის სტრუქტურა არ იცვლება, მაგრამ მისი ქცევა მეთოდის საშუალებით იცვლება.