java:multiple_inheritance

Κληρονομικότητα πολλαπλών γονικών κλάσεων

Στην εισαγωγή της κληρονομικότητας αναφέρθηκε ότι απαγορεύεται η κληρονομικότητα πολλαπλών γονικών κλάσεων. Σε αυτή τη παράγραφο θα εξηγήσουμε γιατί απαγορεύεται αυτού του τύπου η κληρονομικότητα. Ας υποθέσουμε ότι έχουμε την κλάση 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.txt · Last modified: 2016/02/26 11:15 (external edit)