Γιατί η java δεν υποστηρίζει πολλαπλή κληρονομικότητα;

Γιατί η java δεν υποστηρίζει πολλαπλή κληρονομικότητα;
Γιατί η java δεν υποστηρίζει πολλαπλή κληρονομικότητα;
Anonim

Η Java υποστηρίζει πολλαπλή κληρονομικότητα μόνο μέσω διεπαφών. Μια κλάση μπορεί να υλοποιήσει οποιονδήποτε αριθμό διεπαφών αλλά μπορεί να επεκτείνει μόνο μία κλάση. Η πολλαπλή κληρονομικότητα δεν υποστηρίζεται επειδή οδηγεί σε θανατηφόρο πρόβλημα διαμαντιού πρόβλημα με το διαμάντι Το "πρόβλημα διαμαντιών" (μερικές φορές αναφέρεται ως "Θανάσιμο διαμάντι του θανάτου") είναι μια ασάφεια που προκύπτει όταν δύο κατηγορίες Β και Γ κληρονομούν από Το A και η κλάση D κληρονομεί τόσο από το B όσο και από το C. … Ονομάζεται «πρόβλημα διαμαντιού» λόγω του σχήματος του διαγράμματος κληρονομικότητας κλάσης σε αυτήν την κατάσταση. https://en.wikipedia.org › wiki › Multiple_inheritance

Πολλαπλή κληρονομικότητα - Wikipedia

Υποστηρίζει η Java πολλαπλή κληρονομικότητα ή όχι;

Όταν μια κλάση επεκτείνει περισσότερες από μία κλάσεις τότε αυτό ονομάζεται πολλαπλή κληρονομικότητα. … Η Java δεν επιτρέπει πολλαπλή κληρονομικότητα.

Ποιο είναι το πρόβλημα με την πολλαπλή κληρονομικότητα;

Η πολλαπλή κληρονομικότητα είναι ένα αμφιλεγόμενο ζήτημα για πολλά χρόνια, με τους αντιπάλους να επισημαίνουν την αυξημένη πολυπλοκότητα και ασάφειά της σε καταστάσεις όπως το "πρόβλημα με τα διαμάντια", όπου μπορεί να είναι διφορούμενο ως σε ποια γονική τάξη ένα συγκεκριμένο χαρακτηριστικό κληρονομείται από εάν περισσότερες από μία γονικές κλάσεις εφαρμόζουν ίδια …

Γιατί η C++ δεν υποστηρίζει πολλαπλή κληρονομικότητα στην Java;

Αυτό είναι δυνατό γιατί Η Java δενεπιτρέπουν πολλαπλή κληρονομικότητα, αλλά μόνο πολλαπλή υλοποίηση από πολλαπλή διεπαφή. … Εφόσον η διεπαφή στη Java μπορεί να δηλώσει την υπογραφή των μεθόδων χωρίς να τις εφαρμόσει, το πρόβλημα δεν υπάρχει εάν προκύψουν πολλαπλές διεπαφές.

Πώς μπορεί μια διεπαφή Java να έχει πολλαπλή κληρονομικότητα;

Πολλαπλή κληρονομικότητα στην Java μέσω διεπαφής

  1. interface με δυνατότητα εκτύπωσης{
  2. void print;
  3. }
  4. διασύνδεση με δυνατότητα εμφάνισης{
  5. void show;
  6. }
  7. class A7 instruments Εκτυπώσιμο, Εμφανιζόμενο{
  8. public void print{System.out.println("Hello");}

Συνιστάται: