java:abstract_classes_vs_interfaces
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:abstract_classes_vs_interfaces [2015/03/02 06:43] – gthanos | java:abstract_classes_vs_interfaces [2020/02/26 20:45] (current) – gthanos | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Συγκρίνοντας Abstract Κλάσεις και | + | ====== Σύγκριση Abstract Κλάσεων και Interfaces |
+ | |||
+ | Σε αυτή τη σελίδα συγκρίνουμε | ||
^ Χαρακτηριστικό | ^ Χαρακτηριστικό | ||
- | | Multiple Inheritance | Μία κλάση μπορεί να κληρονομεί πολλαπλά interfaces | Μία κλάση μπορεί να κληρονομεί μόνο μία abstract κλάση | | + | | **Multiple Inheritance** | Μία κλάση μπορεί να κληρονομεί πολλαπλά interfaces | Μία κλάση μπορεί να κληρονομεί μόνο μία abstract κλάση | |
- | | Default implementation | Στην Java 8 και μεταγενέστερα ένα interface μπορεί να παρέχει μία default υλοποίηση. Καθώς ένα interface δεν μπορεί να περιέχει πεδία, η πιθανή default υλοποίηση ενός interface θα πρέπει να είναι ανεξάρτητη των | + | | **Default implementation** | Στην Java 8 και μεταγενέστερα ένα interface μπορεί να παρέχει μία default υλοποίηση. Καθώς ένα interface δεν μπορεί να περιέχει πεδία, η πιθανή default υλοποίηση ενός interface θα πρέπει να είναι ανεξάρτητη των |
- | | Περιοριστές πρόσβασης | Σε ένα interface όλες οι δηλώσεις θεωρούνται public | Μία abstract κλάση μπορεί να έχει επιμέρους προσδιοριστές πρόσβασης για τα πεδία και τις μεθόδους της, όπως public, protected, package-private, | + | | **Πεδία** | Ένα Interface μπορεί να περιέχει μόνο σταθερές δηλ μεταβλητές που είναι static και final | Μία Abstract κλάση μπορεί να περιέχει static, static final και non-static (κανονικές) μεταβλητές | |
- | | Λειτουργικότητα | Ένα interface χρησιμοποιείται για να δηλώσει την εξωτερική διεπαφή μίας κλάσης με άλλες κλάσεις | Μία abstract κλάση μπορεί να δηλώσει τόσο της εξωτερική διεπαφή, | + | | **Περιοριστές πρόσβασης** | Σε ένα interface όλες οι δηλώσεις θεωρούνται |
- | | Χρήση | Εάν διαφορετικές υλοποιήσεις κλάσεων χρησιμοποιούν τις ίδιες μεθόδους για την διεπαφή τους με άλλες κλάσεις τότε ένα interface θεωρείται κατάλληλο για να δηλώσει τα κοινά τους χαρακτηριστικά. | + | | **Λειτουργικότητα** | Ένα interface χρησιμοποιείται για να δηλώσει την εξωτερική διεπαφή μίας κλάσης με άλλες κλάσεις | Μία abstract κλάση μπορεί να δηλώσει τόσο της εξωτερική διεπαφή, |
- | | Ταχύτητα | Λιγότερο ταχύ | Ταχύτερο | | + | | **Χρήση** | Εάν διαφορετικές υλοποιήσεις κλάσεων χρησιμοποιούν τις ίδιες μεθόδους για την διεπαφή τους με άλλες κλάσεις τότε ένα interface θεωρείται κατάλληλο για να δηλώσει τα κοινά τους χαρακτηριστικά. |
+ | | **Ταχύτητα** | Λιγότερο ταχύ | Ταχύτερο | ||
+ | | **Επεκτασιμότητα** | Θεωρείται κακή προγραμματιστική πρακτική η επέκταση ενός Interface. Ένα Interface δεν θα πρέπει να σχεδιάζεται με γνώμονα την μελλοντική του επέκταση. | Μία abstract κλάση μπορεί να αλλάξει την υλοποίηση της και να επεκταθεί. | ||
+ | | Προηγούμενο : [[ : |
java/abstract_classes_vs_interfaces.1425278601.txt.gz · Last modified: 2015/03/02 06:43 (external edit)