Τι είναι η διεπαφή στη Java: Πώς να εφαρμόσετε τη διεπαφή με παράδειγμα

Τι είναι το Interface στην Java;

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

Τώρα, θα μάθουμε πώς να χρησιμοποιούμε τη διεπαφή στην Java.

Σύνταξη για τη δήλωση διεπαφής

Για να χρησιμοποιήσετε μια διεπαφή στην τάξη σας, προσθέστε τη λέξη -κλειδί 'υλοποιεί' μετά το όνομα της τάξης σας και στη συνέχεια το όνομα της διεπαφής. | _+_ |

Παράδειγμα υλοποίησης διεπαφής

Τώρα, ας κατανοήσουμε τη διεπαφή στην Java με παράδειγμα: | _+_ | | _+_ |

Κάντε κλικ εδώ εάν το βίντεο δεν είναι προσβάσιμο




Γιατί απαιτείται διεπαφή;

Για να κατανοήσετε καλύτερα τη χρήση της διεπαφής στη Java, αφήστε να δείτε ένα παράδειγμα διεπαφής Java. Η κατηγορία 'Media Player' έχει δύο υποκατηγορίες: συσκευή αναπαραγωγής CD και συσκευή αναπαραγωγής DVD. Το καθένα έχει τη μοναδική εφαρμογή διεπαφής σε μέθοδο Java για αναπαραγωγή μουσικής.

Μια άλλη κατηγορία «Combo drive» κληρονομεί και CD και DVD (δείτε την παρακάτω εικόνα). Ποια μέθοδο παιχνιδιού πρέπει να κληρονομήσει; Αυτό μπορεί να προκαλέσει σοβαρά προβλήματα σχεδιασμού. Και ως εκ τούτου, η Java δεν επιτρέπει πολλαπλή κληρονομικότητα.

Τώρα ας πάρουμε ένα άλλο παράδειγμα του Dog.

Ας υποθέσουμε ότι έχετε μια απαίτηση για την κατηγορία «σκύλος» που κληρονομεί την τάξη «ζώο» και «κατοικίδιο ζώο» (δείτε την παρακάτω εικόνα). Αλλά δεν μπορείτε να επεκτείνετε δύο κλάσεις στην Java. Τι θα κάνατε λοιπόν; Η λύση είναι Interface.

Ο κανονισμός για τη διεπαφή λέει,

  • Μια διεπαφή υλοποίησης Java είναι 100% αφηρημένη κλάση και έχει μόνο αφηρημένες μεθόδους.
  • Η κλάση μπορεί να εφαρμόσει οποιονδήποτε αριθμό διεπαφών.

Το Class Dog μπορεί να επεκταθεί στην κατηγορία 'Animal' και να εφαρμόσει τη διεπαφή ως 'Pet'.

Παράδειγμα διεπαφής Java:

Ας κατανοήσουμε το παρακάτω πρόγραμμα διασύνδεσης σε Java:

Βήμα 1) Αντιγράψτε τον ακόλουθο κώδικα σε έναν επεξεργαστή. | _+_ |

Βήμα 2) Αποθηκεύστε, μεταγλωττίστε και εκτελέστε τον κώδικα. Παρατηρήστε την έξοδο της διεπαφής στο πρόγραμμα Java.

Διαφορά μεταξύ κλάσης και διεπαφής

Τάξη Διεπαφή
Στην τάξη, μπορείτε να δημιουργήσετε μια μεταβλητή και να δημιουργήσετε ένα αντικείμενο. Σε μια διεπαφή, δεν μπορείτε να δημιουργήσετε μια μεταβλητή και να δημιουργήσετε ένα αντικείμενο.
Η τάξη μπορεί να περιέχει συγκεκριμένες μεθόδους (με εφαρμογή) Η διεπαφή δεν μπορεί να περιέχει συγκεκριμένες μεθόδους (με εφαρμογή)

Οι προσδιοριστές πρόσβασης που χρησιμοποιούνται με τις τάξεις είναι ιδιωτικοί, προστατευμένοι και δημόσιοι.

Στη διεπαφή χρησιμοποιείται μόνο ένας προσδιοριστής- Δημόσιο.

Πότε να χρησιμοποιήσετε το Interface and Abstract Class;

  • Χρησιμοποιήστε μια αφηρημένη κλάση όταν πρέπει να οριστεί ένα πρότυπο για μια ομάδα υποκατηγοριών
  • Χρησιμοποιήστε μια διεπαφή όταν πρέπει να οριστεί ένας ρόλος για άλλες κλάσεις, ανεξάρτητα από το δέντρο κληρονομικότητας αυτών των κλάσεων

Πρέπει να γνωρίζετε γεγονότα σχετικά με τη διεπαφή

  • Μια κλάση Java μπορεί να υλοποιήσει πολλαπλές διεπαφές Java. Είναι απαραίτητο η κλάση να εφαρμόσει όλες τις μεθόδους που δηλώνονται στις διεπαφές.
  • Η κλάση πρέπει να αντικαθιστά όλες τις αφηρημένες μεθόδους που δηλώνονται στη διεπαφή
  • Η διεπαφή επιτρέπει την αποστολή ενός μηνύματος σε ένα αντικείμενο χωρίς να αφορά σε ποιες κλάσεις ανήκει.
  • Η κλάση πρέπει να παρέχει λειτουργικότητα για τις μεθόδους που δηλώνονται στη διεπαφή.
  • Όλες οι μέθοδοι σε μια διεπαφή είναι σιωπηρά δημόσιες και αφηρημένες
  • Δεν είναι δυνατή η δημιουργία μιας διεπαφής
  • Μια αναφορά διεπαφής μπορεί να υποδεικνύει αντικείμενα των κλάσεων υλοποίησής της
  • Μια διεπαφή μπορεί να εκτείνεται από μία ή περισσότερες διεπαφές. Η κλάση μπορεί να επεκτείνει μόνο μία κλάση, αλλά να εφαρμόσει οποιονδήποτε αριθμό διεπαφών
  • Μια διεπαφή δεν μπορεί να υλοποιήσει άλλη διεπαφή. Πρέπει να επεκτείνει μια άλλη διεπαφή αν χρειαστεί.
  • Μια διεπαφή που δηλώνεται μέσα σε μια άλλη διεπαφή αναφέρεται ως ένθετη διεπαφή
  • Κατά τη στιγμή της δήλωσης, η μεταβλητή διεπαφής πρέπει να προετοιμαστεί. Διαφορετικά, ο μεταγλωττιστής θα εμφανίσει σφάλμα.
  • Η κλάση δεν μπορεί να εφαρμόσει δύο διεπαφές στη java που έχουν μεθόδους με το ίδιο όνομα αλλά διαφορετικό τύπο επιστροφής.

Περίληψη :

  • Η κλάση που υλοποιεί τη διεπαφή πρέπει να παρέχει λειτουργικότητα για τις μεθόδους που δηλώνονται στη διεπαφή
  • Όλες οι μέθοδοι σε μια διεπαφή είναι σιωπηρά δημόσιες και αφηρημένες
  • Δεν είναι δυνατή η δημιουργία μιας διεπαφής
  • Μια αναφορά διεπαφής μπορεί να υποδεικνύει αντικείμενα των κλάσεων υλοποίησής της
  • Μια διεπαφή μπορεί να εκτείνεται από μία ή περισσότερες διεπαφές. Μια κλάση μπορεί να επεκτείνει μόνο μία κλάση, αλλά να εφαρμόσει οποιονδήποτε αριθμό διεπαφών