java:abstract_classes_vs_interfaces

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Συγκρίνοντας Abstract Κλάσεις και Interfaces ====== ^ Χαρακτηριστικό ^ Interface ^ Abstract Class ^ | Multiple Inheritance | Μία κλάση μπορεί να κληρονομεί πολλαπλά interfaces | Μία κλάση μπορεί να κληρονομεί μόνο μία abstract κλάση | | Default implementation | Στην Java 8 και μεταγενέστερα ένα interface μπορεί να παρέχει μία default υλοποίηση. Καθώς ένα interface δεν μπορεί να περιέχει πεδία, η πιθανή default υλοποίηση ενός interface θα πρέπει να είναι ανεξάρτητη των δεδομένων της κλάσης | Μία abstract κλάση μπορεί να παρέχει default υλοποίηση, η οποία όμως έχει πρόσβαση στα εσωτερικά δεδομένα της κλάσης | | Περιοριστές πρόσβασης | Σε ένα interface όλες οι δηλώσεις θεωρούνται public | Μία abstract κλάση μπορεί να έχει επιμέρους προσδιοριστές πρόσβασης για τα πεδία και τις μεθόδους της, όπως public, protected, package-private, private. | | Λειτουργικότητα | Ένα interface χρησιμοποιείται για να δηλώσει την εξωτερική διεπαφή μίας κλάσης με άλλες κλάσεις | Μία abstract κλάση μπορεί να δηλώσει τόσο της εξωτερική διεπαφή, όσο και λεπτομέρειες της εσωτερικής υλοποίησης | | Χρήση | Εάν διαφορετικές υλοποιήσεις κλάσεων χρησιμοποιούν τις ίδιες μεθόδους για την διεπαφή τους με άλλες κλάσεις τότε ένα interface θεωρείται κατάλληλο για να δηλώσει τα κοινά τους χαρακτηριστικά. | Εάν διαφορετικές υλοποιήσεις κλάσεων έχουν κοινά χαρακτιριστικά που αφορούν την εσωτερική τους κατάσταση (π.χ. κοινές μεταβλητές) τότε η χρήση μίας abstract κλάσης ως κοινός πρόγονος είναι η σωστότερη επιλογή. | | Ταχύτητα | Λιγότερο ταχύ | Ταχύτερο |

java/abstract_classes_vs_interfaces.1425278601.txt.gz · Last modified: 2016/02/26 11:15 (external edit)