Sobes.tech
Junior — Middle

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

sobes.tech AI

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

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

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

მაგალითი:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("ცხოველი ხმას გამოსცემს");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("ჰაუ ჰაუ");
    }
}

Animal a = new Dog();
a.Speak(); // გამოიტანს "ჰაუ ჰაუ"

აქ, მიუხედავად იმისა, რომ ცვლადი a არის ტიპის Animal, გამოიძახება Dog კლასის გადაწერილი Speak() მეთოდი, რადგან ის ვირტუალურია.