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

Βίντεο: Γιατί δεν είναι δυνατή η πολλαπλή κληρονομικότητα στη C#;

Βίντεο: Γιατί δεν είναι δυνατή η πολλαπλή κληρονομικότητα στη C#;
Βίντεο: Θόρυβοι κάτω από το καπό τους οποίους δεν θα πρέπει να αγνοήσετε | AUTODOC 2024, Νοέμβριος
Anonim

Το C# κάνει δεν υποστήριξη πολλαπλή κληρονομιά , γιατί σκέφτηκαν ότι προσθέτοντας πολλαπλή κληρονομιά προσέθεσε υπερβολική πολυπλοκότητα στο C# ενώ παρείχε πολύ μικρό όφελος. Στην C#, οι κλάσεις είναι μόνο επιτρέπεται προς το κληρονομώ από μια μονογονεϊκή κλάση, η οποία ονομάζεται single κληρονομία.

Λοιπόν, γιατί δεν επιτρέπεται η πολλαπλή κληρονομιά;

Η Java υποστηρίζει πολλαπλή κληρονομιά μόνο μέσω διεπαφών. Μια κλάση μπορεί να υλοποιήσει οποιονδήποτε αριθμό διεπαφών αλλά μπορεί να επεκτείνει μόνο μία κλάση. Η πολλαπλή κληρονομικότητα δεν υποστηρίζεται γιατί οδηγεί σε θανατηφόρο πρόβλημα με τα διαμάντια. Μια διεπαφή είναι μια σύμβαση πραγμάτων που πρέπει να εφαρμόσει η τάξη σας.

Μπορεί επίσης να ρωτήσει κανείς, μπορούμε να κληρονομήσουμε πολλαπλές διεπαφές στο C#; Διεπαφές είναι σαν συμφωνίες ή «συμβάσεις» για το τι τάξη μπορώ . Τάξεις μπορώ έχω πολλαπλές διεπαφές , αλλά τα μαθήματα δεν μπορούν κληρονομούν πολλαπλά τάξεις. Τάξεις κληρονομώντας από περισσότερα από ένας η τάξη είναι γνωστή ως πολλαπλούς - κληρονομία . Το C# κάνει δεν επιτρέπω πολλαπλούς - κληρονομία.

Εδώ, τι είναι το πρόβλημα Diamond σε πολλαπλή κληρονομικότητα C#;

Ο " πρόβλημα με τα διαμάντια "είναι μια ασάφεια που προκύπτει όταν δύο κατηγορίες Β και Γ κληρονομώ από την Α και την τάξη Δ κληρονομεί και από το B και από το C. Εάν υπάρχει μια μέθοδος στο A που οι B και C έχουν παρακάμψει και η D δεν την αντικαθιστά, τότε ποια κατηγορία της μεθόδου κάνει η D κληρονομώ : αυτό του Β, ή αυτό του Γ;

Τι είναι η πολλαπλή κληρονομικότητα στην C# με παράδειγμα;

ΝΤΟ# δεν επιτρέπει πολλαπλή κληρονομιά με κλάσεις, αλλά μπορεί να υλοποιηθεί χρησιμοποιώντας τη διεπαφή. Ο λόγος πίσω είναι: Πολλαπλή κληρονομιά προσθέτουν υπερβολική πολυπλοκότητα με μικρό όφελος. Υπάρχουν τεράστιες πιθανότητες σύγκρουσης μέλους της κατηγορίας βάσης. Κληρονομία με τη διεπαφή παρέχει την ίδια εργασία πολλαπλή κληρονομιά.

Συνιστάται: