Sobes.tech
Junior — Middle

როგორ განვსაზღვროთ მეთოდის გადატვირთვა ობიექტზე ორიენტირებულ პროგრამირებაში მისი გადაწერით?

sobes.tech AI

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

მეთოდის გადატვირთვა (overloading) და მეთოდის გადაწერა (overriding) ობიექტზე ორიენტირებულ პროგრამირებაში განსხვავებული კონცეფციებია:

  • მეთოდის გადატვირთვა (overloading): ერთ კლასში რამდენიმე მეთოდი ერთ სახელწოდებაზე, მაგრამ სხვადასხვა პარამეტრებით (ტიპი, რაოდენობა). ეს საშუალებას აძლევს მეთოდი გამოიძახოს სხვადასხვა არგუმენტებით.

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

Java-ს მაგალითი:

class Animal {
    void sound() {
        System.out.println("ზოგიერთი ხმა");
    }

    void sound(String mood) { // გადატვირთვა
        System.out.println("ხმა როდესაც " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // გადაწერა
        System.out.println("ბრახუნი");
    }
}

აქ, sound() კლასი Dog-ში გადაწერს ბაზის კლასის მეთოდს, ხოლო sound(String mood) იგივე კლასში გადატვირთულია.