Sobes.tech
Junior

როდის ითვლება მეთოდი გადახაზულად?

sobes.tech AI

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

მეთოდი ითვლება გადაფარებულად შემდეგ შემთხვევებში:

  1. იგი გამოაცხადა შვილობილი კლასში.
  2. აქვს იგივე სახელი, რაც მშობლის კლასში არსებული მეთოდი.
  3. აქვს იგივე სიგნატურა (პარამეტრების რაოდენობა და ტიპები) და პარამეტრების სია.
  4. აქვს დაბრუნების ტიპი, რომელიც თავსებადია მშობლის კლასის მეთოდის დაბრუნების ტიპთან (კოვარიანტობა, თუ გამოყენებადია).
  5. აქვს იგივე ან უფრო ფართო წვდომის მოდიფიკატორი, ვიდრე მშობლის კლასის მეთოდი (მრავალ ობიექტზე ორიენტირებულ ენებში).
  6. მშობლის მეთოდი გამოაცხადა როგორც ვირტუალური, აბსტრაქტული ან ინტერფეისის ტიპის (ენებში, სადაც აუცილებელია გადაფარვის შესაძლებლობის გამოყოფა, მაგალითად 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 მეთოდი.")

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