====== Κληρονομικότητα πολλαπλών γονικών κλάσεων ======
Στην εισαγωγή της κληρονομικότητας αναφέρθηκε ότι απαγορεύεται η κληρονομικότητα πολλαπλών γονικών κλάσεων. Σε αυτή τη παράγραφο θα εξηγήσουμε γιατί απαγορεύεται αυτού του τύπου η κληρονομικότητα. Ας υποθέσουμε ότι έχουμε την κλάση ''Animal'' και την κλάση ''Mammal'' οι οποίες ορίζονται ως εξής:
public class Animal {
public String name;
public class setName(name) {
this.name = name;
println("Animal's name is "+name);
}
}
public class Mammal {
public String name;
public class setName(name) {
this.name = name;
println("Mammal's name is "+name);
}
}
Ας υποθέσουμε τώρα ότι έχουμε και την κλάση ''Dog'' που κληρονομεί τις ''Animal'' και ''Mammal''.
public class Dog extends Animal, Mammal {
}
Όταν ένα αντικείμενο της κλάσης ''Dog'' καλεί τη μέθοδο ''setName'' δεν είναι σαφές αν θα καλέσει την μέθοδο αυτή της κλάσης ''Animal'' ή της κλάσης ''Mammal''. Αυτού του είδους η ασάφεια αποφεύγεται στην Java περιορίζοντας τον μέγιστο αριθμό των γονικών κλάσεων σε μία.
|Προηγούμενο: [[ :java:multiple_inheritance | Final Κλάσεις και Μέθοδοι ]] | Επόμενο: [[ :java:super_operator | Ο τελεστής super]]|