Junior
Ποια είναι η διαφορά μεταξύ αφηρημένων κλάσεων και διεπαφών;
sobes.tech AI
Απάντηση από AI
Τεθλασμένη κλάση:
- Μπορεί να περιέχει αφηρημένες (χωρίς υλοποίηση) και συγκεκριμένες (με υλοποίηση) μεθόδους.
- Μπορεί να περιέχει πεδία (μεταβλητές στιγμής).
- Μπορεί να έχει κατασκευαστές.
- Επιτρέπει την απλή κληρονομιά (μία κλάση μπορεί να κληρονομήσει από μια αφηρημένη κλάση).
- Χρησιμοποιείται για τον ορισμό της βασικής δομής και της γενικής συμπεριφοράς για συναφείς κλάσεις.
Διεπαφή:
- Μπορεί να περιέχει μόνο αφηρημένες μεθόδους (μερικές γλώσσες, όπως η Java από την έκδοση 8, επιτρέπουν προεπιλεγμένες και static μεθόδους με υλοποίηση).
- Δεν μπορεί να περιέχει πεδία στιγμής (μόνο σταθερές).
- Δεν μπορεί να έχει κατασκευαστές.
- Επιτρέπει πολλαπλή υλοποίηση (μία κλάση μπορεί να υλοποιεί πολλές διεπαφές).
- Χρησιμοποιείται για τον ορισμό ενός συμβολαίου που πρέπει να υλοποιούν οι κλάσεις.