Junior
Γιατί σε ορισμένες διεπαφές δεν ορίζονται μέθοδοι;
sobes.tech AI
Απάντηση από AI
Αυτού του είδους οι διεπαφές ονομάζονται διασυνδέσεις marker (σημειωτικές διασυνδέσεις). Δεν περιέχουν μεθόδους και χρησιμοποιούνται για την επισήμανση κλάσεων, υποδεικνύοντας στον μεταγλωττιστή ή JVM ορισμένες ιδιότητες ή σημασιολογία της κλάσης.
Παραδείγματα:
java.io.Serializable: Σημειώνει μια κλάση ως σειριοποιήσιμη.java.lang.Cloneable: Δείχνει ότι το αντικείμενο μπορεί να κλωνοποιηθεί.java.util.RandomAccess: Βελτιστοποιεί την τυχαία πρόσβαση στα στοιχεία μιας λίστας.
Πλεονεκτήματα:
- Σημασιολογία: Υποδεικνύουν ρητά την πρόθεση του προγραμματιστή σχετικά με την κλάση.
- Πολυμορφισμός: Επιτρέπουν τη χρήση πολυμορφικών κλήσεων, δουλεύοντας με μια ομάδα κλάσεων που υλοποιούν μια ίδια διασύνδεση marker.
- Επισήμανση: Μπορούν να χρησιμοποιηθούν για την παροχή πρόσθετων πληροφοριών στα εργαλεία (π.χ., πλαίσια, ORM).
Εναλλακτικές (ανάλογα με το πλαίσιο):
- Ανάγνωσης (
@interface). - Αφηρημένες κλάσεις.
Οι διασυνδέσεις marker προτιμώνται όταν χρειάζεται να επισημάνετε ένα χαρακτηριστικό της κλάσης χωρίς να προσθέσετε συμπεριφορά.