Sobes.tech
Junior

Πότε θεωρείται μια μέθοδος υπερισχύουσα (overriding);

sobes.tech AI

Απάντηση από AI

Η μέθοδος θεωρείται υπερκαλυμμένη (overriding) στην αντικειμενοστραφή προγραμματισμό όταν:

  1. Ορίζεται σε μια υποκλάση με το ίδιο όνομα, τύπο επιστροφής και λίστα παραμέτρων (υπογραφή) με τη μέθοδο στην υπερκλάση.
  2. Η μέθοδος της υπερκλάσης δεν είναι private.
  3. Η μέθοδος στην υποκλάση δεν έχει πιο αυστηρό τροπο πρόσβασης από τη μέθοδο στην υπερκλάση.
  4. Σε περίπτωση εξαιρέσεων, η υπερκαλυμμένη μέθοδος δεν μπορεί να δηλώσει ελεγχόμενες εξαιρέσεις ([checked exceptions]) που είναι πιο γενικές από αυτές που δηλώνονται στη μέθοδο που υπερκαλύπτει.

Όταν καλείται η υπερκαλυμμένη μέθοδος σε ένα αντικείμενο της υποκλάσης, εκτελείται η έκδοση της μεθόδου από την υποκλάση. Αυτό είναι ένα παράδειγμα πολυμορφισμού κατά την εκτέλεση.

Παράδειγμα σε Java:

// java

class Animal {
    public void makeSound() {
        System.out.println("Γενικός ήχος ζώου");
    }
}

class Dog extends Animal {
    @Override // Η σημείωση @Override επιβεβαιώνει ότι η μέθοδος έχει υπερκαλυφθεί
    public void makeSound() {
        System.out.println("Γαβ γαβ");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Μιαου");
    }
}