Junior — Middle
შვილს კლასში არსებული Init მეთოდი მემკვიდრეობით იღებს თუ გადახედავს საფუძვლიან კლასის განხორციელებას?
sobes.tech AI
პასუხი AI-სგან
დაწესებულებაში Init მეთოდი შვილობილი კლასში არ ირჩევს ბაზის კლასის განხორციელებას, თუ ის ხელახლა გამოაცხადა (ანუ იგივე სახელით, მაგრამ საკუთარი განხორციელებით). ამ შემთხვევაში ამბობენ, რომ მეთოდი გადახაზულია (override). გადახაზვა ნიშნავს, რომ როდესაც მეთოდი გამოიძახება შვილობილი კლასის ობიექტზე, გამოიყენება სწორედ მისი ვერსია, არა ბაზის კლასის.
თუ Init მეთოდი შვილობილი კლასში არ არის გამოაცხადებული, ის ირჩევა ბაზის კლასიდან და გამოიყენება ცვლილებების გარეშე.
C# მაგალითი:
class BaseClass {
public virtual void Init() {
Console.WriteLine("ბაზის კლასის Init");
}
}
class DerivedClass : BaseClass {
public override void Init() {
Console.WriteLine("შვილობილი კლასის Init");
}
}
აქ, Init-ი DerivedClass-ში გადახაზავს BaseClass-ის მეთოდს. თუ Init-ი არ არის გამოაცხადებული DerivedClass-ში, გამოიყენება ბაზის კლასის განხორციელება.