Διεπαφή σε Java με Παράδειγμα
Σε τι είναι το Interface Java?
An Διεπαφή σε Java Η γλώσσα προγραμματισμού ορίζεται ως ένας αφηρημένος τύπος που χρησιμοποιείται για τον καθορισμό της συμπεριφοράς μιας κλάσης. ΕΝΑ Java Η διεπαφή περιέχει στατικές σταθερές και αφηρημένες μεθόδους. Μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές. Σε Java, οι διεπαφές δηλώνονται χρησιμοποιώντας τη λέξη-κλειδί διεπαφής. Όλες οι μέθοδοι στη διεπαφή είναι έμμεσα δημόσιες και αφηρημένες.
Σύνταξη για δήλωση διεπαφής
Για να χρησιμοποιήσετε μια διασύνδεση στην τάξη σας, προσθέστε τη λέξη-κλειδί «υλοποιεί» μετά το όνομα της τάξης σας ακολουθούμενη από το όνομα της διεπαφής.
interface {
//methods
}
Παράδειγμα υλοποίησης διεπαφής
Τώρα, ας καταλάβουμε τη διεπαφή Java με παράδειγμα:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Γιατί απαιτείται διεπαφή;
Για να κατανοήσετε τη χρήση της διεπαφής στο Java καλύτερα, ας δούμε ένα Java παράδειγμα διεπαφής. Η κλάση "Media Player" έχει δύο υποκατηγορίες: CD player και DVD player. Το καθένα έχει τη μοναδική του εφαρμογή διεπαφής Java μέθοδος αναπαραγωγής μουσικής.
Μια άλλη κατηγορία "Combo drive" κληρονομεί και CD και DVD (δείτε την εικόνα παρακάτω). Ποια μέθοδο παιχνιδιού πρέπει να κληρονομήσει; Αυτό μπορεί να προκαλέσει σοβαρά προβλήματα σχεδιασμού. Και ως εκ τούτου, Java δεν επιτρέπει πολλαπλές κληρονομία.
Τώρα ας πάρουμε ένα άλλο παράδειγμα του Dog.
Ας υποθέσουμε ότι έχετε μια απαίτηση όπου η κατηγορία «σκύλος» κληρονομεί την κατηγορία «ζώο» και «κατοικίδιο» (βλ. εικόνα παρακάτω). Αλλά δεν μπορείτε να επεκτείνετε δύο τάξεις μέσα Java. Τι θα κάνατε λοιπόν; Η λύση είναι το Interface.
Το βιβλίο κανόνων για τη διεπαφή λέει,
- A Java Η διεπαφή υλοποίησης είναι 100% αφηρημένη κατηγορία και έχει μόνο αφηρημένες μεθόδους.
- Η τάξη μπορεί να υλοποιήσει οποιονδήποτε αριθμό διεπαφών.
Το Class 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 και την Abstract Class;
- Χρησιμοποιήστε μια αφηρημένη κλάση όταν πρέπει να οριστεί ένα πρότυπο για μια ομάδα υποκλάσεων
- Χρησιμοποιήστε μια διεπαφή όταν πρέπει να οριστεί ένας ρόλος για άλλες κλάσεις, ανεξάρτητα από το δέντρο κληρονομικότητας αυτών των κλάσεων
Πρέπει να γνωρίζετε στοιχεία για το Interface
- A Java η κλάση μπορεί να υλοποιήσει πολλαπλά Java Διεπαφές. Είναι απαραίτητο η κλάση να εφαρμόσει όλες τις μεθόδους που δηλώνονται στις διεπαφές.
- Η κλάση πρέπει να παρακάμπτει όλες τις αφηρημένες μεθόδους που δηλώνονται στη διεπαφή
- Η διεπαφή επιτρέπει την αποστολή μηνύματος σε ένα αντικείμενο χωρίς να αφορά σε ποιες κλάσεις ανήκει.
- Η κλάση πρέπει να παρέχει λειτουργικότητα για τις μεθόδους που δηλώνονται στη διεπαφή.
- Όλες οι μέθοδοι σε μια διεπαφή είναι έμμεσα δημόσιες και αφηρημένες
- Δεν είναι δυνατή η δημιουργία μιας διεπαφής
- Μια αναφορά διασύνδεσης μπορεί να οδηγεί σε αντικείμενα των κλάσεων υλοποίησης της
- Μια διεπαφή μπορεί να εκτείνεται από μία ή πολλές διεπαφές. Η κλάση μπορεί να επεκτείνει μόνο μία κλάση αλλά να εφαρμόσει οποιονδήποτε αριθμό διεπαφών
- Μια διεπαφή δεν μπορεί να εφαρμόσει άλλη διεπαφή. Πρέπει να επεκτείνει άλλη διεπαφή εάν χρειάζεται.
- Μια διεπαφή που δηλώνεται μέσα σε μια άλλη διεπαφή αναφέρεται ως ένθετη διεπαφή
- Κατά τη στιγμή της δήλωσης, η μεταβλητή διεπαφής πρέπει να αρχικοποιηθεί. Διαφορετικά, ο μεταγλωττιστής θα κάνει ένα σφάλμα.
- Η κλάση δεν μπορεί να εφαρμόσει δύο διεπαφές στη java που έχουν μεθόδους με το ίδιο όνομα αλλά διαφορετικό τύπο επιστροφής.
Περίληψη:
- Η κλάση που υλοποιεί τη διεπαφή πρέπει να παρέχει λειτουργικότητα για τις μεθόδους που δηλώνονται στη διεπαφή
- Όλες οι μέθοδοι σε μια διεπαφή είναι έμμεσα δημόσιες και αφηρημένες
- Δεν είναι δυνατή η δημιουργία μιας διεπαφής
- Μια αναφορά διασύνδεσης μπορεί να οδηγεί σε αντικείμενα των κλάσεων υλοποίησης της
- Μια διεπαφή μπορεί να εκτείνεται από μία ή πολλές διεπαφές. Μια κλάση μπορεί να επεκτείνει μόνο μία κλάση αλλά να εφαρμόσει οποιονδήποτε αριθμό διεπαφών




