Junior
Πότε θεωρείται μια μέθοδος υπερισχύουσα (overriding);
sobes.tech AI
Απάντηση από AI
Η μέθοδος θεωρείται υπερκαλυμμένη (overriding) στην αντικειμενοστραφή προγραμματισμό όταν:
- Ορίζεται σε μια υποκλάση με το ίδιο όνομα, τύπο επιστροφής και λίστα παραμέτρων (υπογραφή) με τη μέθοδο στην υπερκλάση.
- Η μέθοδος της υπερκλάσης δεν είναι
private. - Η μέθοδος στην υποκλάση δεν έχει πιο αυστηρό τροπο πρόσβασης από τη μέθοδο στην υπερκλάση.
- Σε περίπτωση εξαιρέσεων, η υπερκαλυμμένη μέθοδος δεν μπορεί να δηλώσει ελεγχόμενες εξαιρέσεις ([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("Μιαου");
}
}