Junior — Middle
Ποιες αλλαγές πρέπει να γίνουν στον ορισμό της κλάσης για να διασφαλιστεί η δυνατότητα χρήσης πολυμορφισμού;
sobes.tech AI
Απάντηση από AI
Για να διασφαλίσετε τη δυνατότητα χρήσης πολυμορφισμού στη Java, είναι απαραίτητο:
- Να κάνετε τις μεθόδους που προορίζονται να υπερισχύσουν στις υποκλάσεις μη στατικές και μη τελικές.
- Να χρησιμοποιείτε τη λέξη-κλειδί
overrideστις υποκλάσεις για την υπερισχύση των μεθόδων της βασικής κλάσης. - Στην βασική κλάση, οι μέθοδοι πρέπει να δηλώνονται ως
publicήprotected(ώστε οι υποκλάσεις να μπορούν να τις υπερισχύσουν).
Παράδειγμα:
class Animal {
public void sound() {
System.out.println("Κάποιος ήχος");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Γαύγισμα");
}
}
// Χρήση πολυμορφισμού
Animal animal = new Dog();
animal.sound(); // Θα εμφανίσει "Γαύγισμα"
Επομένως, για να υποστηρίξετε τον πολυμορφισμό, οι μέθοδοι πρέπει να είναι εικονικές (στη Java, όλες οι μη στατικές μέθοδοι είναι εικονικές από προεπιλογή). Το κύριο είναι να μην κάνετε τις μεθόδους static ή final.