Διεπαφή σε Java με Παράδειγμα

⚡ Έξυπνη Σύνοψη

Διεπαφή σε Java είναι κοιλιακοίtracΤύπος t που καθορίζει τη συμπεριφορά που πρέπει να υλοποιήσει μια κλάση, που περιέχει σταθερές και abstract μέθοδοι. Αυτός ο πόρος εξηγεί τι είναι μια διεπαφή, γιατί απαιτείται, πώς να δηλώσετε και να υλοποιήσετε μια και πώς οι διεπαφές διαφέρουν από τις κλάσεις και τα abs.tracτάξεις t.

  • 📜 Ορισμός: Μια διεπαφή καθορίζει τη συμπεριφορά χρησιμοποιώντας abstract μέθοδοι και σταθερές που πρέπει να παρέχουν οι υλοποιήσεις κλάσεων.
  • 🔑 Λέξη-κλειδί: Οι διεπαφές δηλώνονται με τη λέξη-κλειδί interface και οι κλάσεις χρησιμοποιούν υλοποιήσεις για να τις υιοθετήσουν.
  • 🧩 Πολλαπλή κληρονομιά: Μια κλάση μπορεί να υλοποιήσει πολλές διεπαφές, λύνοντας Javaη έλλειψη πολλαπλής κληρονομικότητας κλάσεων.
  • Κλάση vs Διεπαφή: Σε αντίθεση με τις κλάσεις, οι διεπαφές δεν μπορούν να δημιουργηθούν και παραδοσιακά διατηρούν μόνο δημόσια abs.tracμέθοδοι t.
  • 🎯 Πότε να χρησιμοποιείτε: Χρησιμοποιήστε μια διεπαφή για να ορίσετε έναν ρόλο για άσχετες κλάσεις και ένα abstracκλάση t για ένα κοινόχρηστο πρότυπο.

Διεπαφή σε Java

Σε τι είναι το Interface Java?

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

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

Για να χρησιμοποιήσετε μια διεπαφή στην κλάση σας, προσθέστε τη λέξη-κλειδί «implements» μετά το όνομα της κλάσης σας, ακολουθούμενη από το όνομα της διεπαφής.

interface {
   // methods
}

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

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

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο.

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

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

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

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

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

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

Ας πάρουμε τώρα ένα άλλο παράδειγμα ενός σκύλου.

Ας υποθέσουμε ότι έχετε μια απαίτηση όπου η κλάση «dog» κληρονομεί τις κλάσεις «animal» και «Pet» (δείτε την παρακάτω εικόνα). Αλλά δεν μπορείτε να επεκτείνετε δύο κλάσεις σε JavaΤι θα κάνατε λοιπόν; Η λύση είναι μια διεπαφή.

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

Το βιβλίο κανόνων για μια διεπαφή αναφέρει:

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

Η κλάση Dog μπορεί να επεκτείνει την κλάση "Animal" και να υλοποιήσει τη διεπαφή "Pet".

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

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

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

Βήμα 1) Αντιγράψτε τον παρακάτω κώδικα σε ένα πρόγραμμα επεξεργασίας.

interface Pet {
  public void test();
}
class Dog implements Pet {
   public void test() {
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]) {
     Pet p = new Dog();
     p.test();
  }
}

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

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

Τάξη περιβάλλον λειτουργίας
Σε μια κλάση, μπορείτε να δημιουργήσετε στιγμιότυπα μεταβλητών και να δημιουργήσετε ένα αντικείμενο. Σε μια διεπαφή, δεν μπορείτε να δημιουργήσετε στιγμιότυπα μεταβλητών ή να δημιουργήσετε ένα αντικείμενο.
Μια κλάση μπορεί να περιέχει συγκεκριμένες (με υλοποίηση) μεθόδους. Μια διεπαφή δεν μπορεί να περιέχει συγκεκριμένες (με υλοποίηση) μεθόδους.
Οι προσδιοριστές πρόσβασης που χρησιμοποιούνται με τις κλάσεις είναι ιδιωτικοί, προστατευμένοι και δημόσιοι. Σε μια διεπαφή, χρησιμοποιείται μόνο ένας προσδιοριστής - public.

Πότε να χρησιμοποιείτε το Interface και το AbstracΤάξη;

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

Πρέπει να γνωρίζετε στοιχεία για το Interface

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

Συχνές Ερωτήσεις

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

Τα εργαλεία τεχνητής νοημοσύνης αναλύουν διεπαφές για να προτείνουν υλοποιήσεις, να ανιχνεύουν ελλείπουσες μεθόδους και να προτείνουν πιο καθαρές εφαρμογές.tracστάσεις κατά την αναδιάρθρωση. Αυτό επιταχύνει την ανάπτυξη ενώ παράλληλα διατηρείping η βάση κώδικα είναι χαλαρά συνδεδεμένη και ευκολότερη στη συντήρηση.

Ναί. Από Java 8, οι διεπαφές μπορούν να περιλαμβάνουν προεπιλεγμένες και στατικές μεθόδους που έχουν υλοποιήσεις, εκτός από τις abs.tract μέθοδοι. Αυτό επιτρέπει στις διεπαφές να εξελίσσονται χωρίς να διαταράσσουν τις υπάρχουσες κλάσεις υλοποίησης.

Μια διεπαφή δείκτη δεν περιέχει μεθόδους. Σηματοδοτεί μεταδεδομένα στην JVM ή τον μεταγλωττιστή, ώστε να αντιμετωπίζουν ειδικά τις κλάσεις υλοποίησης. Παραδείγματα περιλαμβάνουν τις Serializable και Cloneable στο πρότυπο. Java βιβλιοθήκη.

Συνοψίστε αυτήν την ανάρτηση με: