Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Τι είναι πολλαπλή κληρονομικότητα σε Java

; προγραμματιστές Java σχεδιαστεί από το μηδέν για να λειτουργήσει ως ένα πλήρες αντικειμενοστραφής γλώσσα προγραμματισμού . Εξαιτίας αυτού , έννοιες αναπόσπαστα με αντικειμενοστρεφή προγραμματισμό γίνει αρκετά σημαντική για τις βασικές λειτουργίες Java . Συγκεκριμένα , οι έννοιες της κληρονομιάς κατηγορίας ( και τα προβλήματα που προκύπτουν μορφή κληρονομικότητα ) είναι θεμελιώδεις ανησυχίες με τον προγραμματιστή Java . Ένα από αυτά τα προβλήματα , πολλαπλή κληρονομικότητα , μπορεί να παρακαμφθεί με την κατανόηση του πώς λειτουργεί η κληρονομικότητα , και πώς να χρησιμοποιούν τις διεπαφές Java . OOP και Κληρονομικότητα
Η

Αντικειμενοστρεφής Προγραμματισμός χρησιμοποιεί την έννοια της κληρονομιάς για να επεκτείνουν τη λειτουργικότητα των αντικειμένων . Σκεφτείτε όταν ένας προγραμματιστής δημιουργεί ένα αντικείμενο ? Που μπορεί αργότερα να βρει ότι πρέπει να δημιουργήσει ένα πολύ παρόμοιο αντικείμενο με μικρές μόνο διαφορές ( ίσως να επεκτείνετε τη λειτουργικότητα του προηγούμενου αντικειμένου σε ένα νέο πλαίσιο ) . Αυτό είναι όπου κληρονομιά έρθει μέσα Ένα αντικείμενο που ένας προγραμματιστής " προέρχεται " από άλλο " βάση " αντικείμενο κληρονομεί τις μεθόδους και τις μεταβλητές της κατηγορίας αυτής , και μπορεί στη συνέχεια να προσθέσετε περισσότερες λειτουργίες σε αυτό ( όπως στο ακόλουθο παράδειγμα Java ) :

δημόσια τάξη Σφαίρα {

ακτίνα public int ?

}

δημόσια τάξη Ball επεκτείνει σφαίρα {

χρώμα δημόσια string? //Ball προσθέτει το "χρώμα" μεταβλητή , αλλά επίσης χρησιμοποιεί την " ακτίνα" μεταβλητή

}
εικόνων Πολλαπλές Κληρονομικότητα
Η

Σε κάποιο σημείο , ένας προγραμματιστής θα μπορούσε να γίνει στον πειρασμό να αντλήσει μια ενιαία κατηγορία από πολλαπλές κατηγορίες . Αυτό είναι γνωστό ως « πολλαπλή κληρονομικότητα » και ενώ φαινομενικά χρήσιμο , μπορεί να προκαλέσει προβλήματα , όπως το περιβόητο «πρόβλημα διαμάντι. " Το πρόβλημα διαμάντι συμβαίνει όταν δύο τάξεις κληρονομούν από την ίδια κατηγορία ( όπως η κατηγορία Β και C που προέρχονται από την κατηγορία Α ) , ενώ μια άλλη κατηγορία ( Δ ) κληρονομεί από δύο Β και C. Όταν δημιουργείται ένα αντικείμενο Α, το σύστημα αντιμετωπίζει ως ένας τύπος της βασικής κλάσης ( class " Ball" είναι μια " Σφαίρα ", για παράδειγμα ) . Στο πρόβλημα διαμάντι , το σύστημα δεν μπορεί να επηρεάσει καθοριστικά το ποια τάξη D είναι ( είναι πληκτρολογήστε το ABD ή πληκτρολογήστε ACD ; ), η οποία προκαλεί προβλήματα .

Η Java και πολλαπλή κληρονομικότητα
Η

Λόγω των προβλημάτων με την πολλαπλή κληρονομικότητα , Java δεν επιτρέπει πολλαπλή κληρονομικότητα . Ωστόσο , στην πραγματικότητα προέρχονται από τάξεις πολλαπλές κατηγορίες βάση μπορεί να επιτευχθεί με ασφαλή τρόπο μέσω της χρήσης των « διεπαφών ». Μια διεπαφή είναι παρόμοια σε μια κατηγορία , εκτός από το ότι δεν καθορίζει μόνο τη δομή της κατηγορίας, αλλά όχι το πραγματικό κώδικα . Μια βασική κλάση που υλοποιεί μια διεπαφή δεν σημαίνει απαραίτητα " κληρονομήσει " τη λειτουργικότητα της διεπαφής : υπόσχεται μόνο να χρησιμοποιήσει τη δομή της . Επειδή μια κλάση που υλοποιεί μια διεπαφή δεν κληρονομεί από άλλη κατηγορία ( και αυτό δεν είναι το είδος της κατηγορίας βάσης ) , τότε ο προγραμματιστής μπορεί να εφαρμόσει πολλαπλές διεπαφές που χρησιμοποιούν την ίδια κατηγορία
εικόνων Παράδειγμα : . Κληρονομικότητα και Διασυνδέσεις
Η

το παρακάτω παράδειγμα δείχνει τη διαφορά μεταξύ κληρονομικότητα αντικείμενο και ένα interface . Είναι σημαντικό , μια τάξη που κληρονομεί από άλλο αποκτά πρόσβαση στην κλάση βάσης, διότι γίνεται ουσιαστικά ένα είδος αυτής της κατηγορίας ( όπως στο " Ball" και " Σφαίρα " τάξεις) . Μια κλάση που υλοποιεί μια διεπαφή υπόσχεται μόνο να εφαρμόσει τη δομή της διεπαφής : δεν είναι το είδος της διασύνδεσης :

interface Βασικές {

int doubleA ( ) ? //Σημείωση : όχι πραγματικό κώδικα ορίζεται στο περιβάλλον

}

δημόσια τάξη Β υλοποιεί Βασικές {

δημόσια int a ?

public int doubleA ( ) //κλάση Β πρέπει να καθορίσει το " doubleA ( ) " μέθοδο για την εφαρμογή " Basic"

{ επιστρέψει μια * 2 ? } }


Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα