Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ αφηρημένων κλάσεων και διεπαφών;

sobes.tech AI

Απάντηση από AI

Τεθλασμένη κλάση:

  • Μπορεί να περιέχει αφηρημένες (χωρίς υλοποίηση) και συγκεκριμένες (με υλοποίηση) μεθόδους.
  • Μπορεί να περιέχει πεδία (μεταβλητές στιγμής).
  • Μπορεί να έχει κατασκευαστές.
  • Επιτρέπει την απλή κληρονομιά (μία κλάση μπορεί να κληρονομήσει από μια αφηρημένη κλάση).
  • Χρησιμοποιείται για τον ορισμό της βασικής δομής και της γενικής συμπεριφοράς για συναφείς κλάσεις.

Διεπαφή:

  • Μπορεί να περιέχει μόνο αφηρημένες μεθόδους (μερικές γλώσσες, όπως η Java από την έκδοση 8, επιτρέπουν προεπιλεγμένες και static μεθόδους με υλοποίηση).
  • Δεν μπορεί να περιέχει πεδία στιγμής (μόνο σταθερές).
  • Δεν μπορεί να έχει κατασκευαστές.
  • Επιτρέπει πολλαπλή υλοποίηση (μία κλάση μπορεί να υλοποιεί πολλές διεπαφές).
  • Χρησιμοποιείται για τον ορισμό ενός συμβολαίου που πρέπει να υλοποιούν οι κλάσεις.