Junior
როდის ითვლება მეთოდი გადახაზულად?
sobes.tech AI
პასუხი AI-სგან
მეთოდი ითვლება გადაფარებულად შემდეგ შემთხვევებში:
- იგი გამოაცხადა შვილობილი კლასში.
- აქვს იგივე სახელი, რაც მშობლის კლასში არსებული მეთოდი.
- აქვს იგივე სიგნატურა (პარამეტრების რაოდენობა და ტიპები) და პარამეტრების სია.
- აქვს დაბრუნების ტიპი, რომელიც თავსებადია მშობლის კლასის მეთოდის დაბრუნების ტიპთან (კოვარიანტობა, თუ გამოყენებადია).
- აქვს იგივე ან უფრო ფართო წვდომის მოდიფიკატორი, ვიდრე მშობლის კლასის მეთოდი (მრავალ ობიექტზე ორიენტირებულ ენებში).
- მშობლის მეთოდი გამოაცხადა როგორც ვირტუალური, აბსტრაქტული ან ინტერფეისის ტიპის (ენებში, სადაც აუცილებელია გადაფარვის შესაძლებლობის გამოყოფა, მაგალითად C#-ში
virtual-ის კლავიშს სიტყვით).\n\nJava-ს მაგალითი:
// მშობლის კლასი
class SuperClass {
// მეთოდი, რომელიც შეიძლება გადაფაროს
public void display() {
System.out.println("ეს არის SuperClass-ის display მეთოდი.");
}
}
// შვილობილი კლასი
class SubClass extends SuperClass {
// გადაფარებული display მეთოდი
@Override // ანოტაცია გადაფარვის შემოწმებისთვის კომპილაციის დროს
public void display() {
System.out.println("ეს არის SubClass-ის display მეთოდი.");
}
}
Python-ის მაგალითი:
# მშობლის კლასი
class SuperClass:
# მეთოდი, რომელიც შეიძლება გადაფაროს
def display(self):
print("ეს არის SuperClass-ის display მეთოდი.")
# შვილობილი კლასი
class SubClass(SuperClass):
# გადაფარებული display მეთოდი
def display(self):
print("ეს არის SubClass-ის display მეთოდი.")
ძირითადი მნიშვნელობაა მეთოდის სახელი და სიგნატურა შენარჩუნებული იყოს, მაგრამ მისი ქცევა შეიცვალოს შვილობილი კლასში.