Διαφορά μεταξύ κοιλιακώνtracΚλάση t και Διεπαφή σε Java

Βασική διαφορά μεταξύ κοιλιακώνtracΚλάση t και Διεπαφή σε Java

  • Στο Interface, μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές, ενώ η κλάση μπορεί να κληρονομήσει μόνο μία Abs.tracΤάξη.
  • Το In Interface δεν έχει τροποποιητές πρόσβασης. Όλα όσα ορίζονται μέσα στο Interface θεωρούνται ότι έχουν έναν δημόσιο τροποποιητή, ενώ το AbstracΗ κλάση t μπορεί να έχει έναν τροποποιητή πρόσβασης.
  • Η διεπαφή δεν μπορεί να περιέχει πεδία δεδομένων, ενώ το abstracΗ κλάση t μπορεί να έχει πεδία δεδομένων.
  • Οι διεπαφές βοηθούν στον καθορισμό των περιφερειακών ικανοτήτων μιας τάξης, ενώ οι κοιλιακοίtracΗ κλάση t ορίζει την ταυτότητα μιας κλάσης.

Διεπαφή vs ΚοιλιακούςtracΤάξη σε Java

Τι είναι οι κοιλιακοί;tracΤάξη;

Μια κατηγορία που έχει κοιλιακούςtracΗ λέξη-κλειδί t στη δήλωσή της ονομάζεται abstracκατηγορία t. ΚοιλιακούςtracΤα μαθήματα t θα πρέπει να έχουν μηδέν ή περισσότερους κοιλιακούςtract μέθοδοι. δηλαδή, μέθοδοι χωρίς σώμα. Μπορεί να έχει πολλαπλές συγκεκριμένες μεθόδους. AbstracΟι κλάσεις t σάς επιτρέπουν να δημιουργείτε σχέδια για συγκεκριμένες κλάσεις. Αλλά η κληρονομική κλάση θα πρέπει να υλοποιεί το abstracμέθοδος t. ΚοιλιακούςtracΟι κλάσεις t δεν μπορούν να δημιουργηθούν ως στιγμιότυπα.

Σημαντικοί λόγοι για τη χρήση διεπαφών

  • Οι διεπαφές χρησιμοποιούνται για την επίτευξη ABStracσμού.
  • Σχεδιασμένο για να υποστηρίζει δυναμική ανάλυση μεθόδου κατά το χρόνο εκτέλεσης
  • Σας βοηθά να επιτύχετε χαλαρή σύζευξη.
  • Σας επιτρέπει να διαχωρίσετε τον ορισμό μιας μεθόδου από την ιεραρχία κληρονομικότητας

Σημαντικοί λόγοι για τη χρήση κοιλιακώνtracΤάξη t

  • AbstracΟι κλάσεις t προσφέρουν προεπιλεγμένη λειτουργικότητα για τις υποκλάσεις.
  • Παρέχει ένα πρότυπο για μελλοντικές συγκεκριμένες τάξεις
  • Σας βοηθά να ορίσετε μια κοινή διεπαφή για τις υποκατηγορίες του
  • AbstracΗ κλάση t επιτρέπει την επαναχρησιμοποίηση του κώδικα.

Τι είναι η διεπαφή;

Η διεπαφή είναι ένα σχέδιο που μπορεί να χρησιμοποιηθεί για την υλοποίηση μιας κλάσης. Η διεπαφή δεν περιέχει συγκεκριμένες μεθόδους (μεθόδους που έχουν κώδικα). Όλες οι μέθοδοι μιας διεπαφής είναι abs.tract μέθοδοι. Μια διεπαφή δεν μπορεί να δημιουργηθεί ως στιγμιότυπο. Ωστόσο, οι κλάσεις που υλοποιούν διεπαφές μπορούν να δημιουργηθούν ως στιγμιότυπο. Οι διεπαφές δεν περιέχουν ποτέ μεταβλητές στιγμιότυπου, αλλά μπορούν να περιέχουν δημόσιες στατικές τελικές μεταβλητές (δηλαδή, σταθερές μεταβλητές κλάσης)

Διαφορά μεταξύ Interface και AbstracΤάξη σε Java

Ένας κοιλιακόςtracΗ κλάση t σάς επιτρέπει να δημιουργήσετε λειτουργικότητα που μπορούν να υλοποιήσουν ή να παρακάμψουν οι υποκλάσεις, ενώ μια διεπαφή σάς επιτρέπει μόνο να δηλώσετε λειτουργικότητα αλλά όχι να την υλοποιήσετε. Μια κλάση μπορεί να επεκτείνει μόνο ένα abs.tracκλάση t, ενώ μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές.

Παράμετροι περιβάλλον λειτουργίας Abstracκατηγορίας t
Ταχύτητα Αργά Γρήγορα
Πολλαπλές κληρονομιές Εφαρμογή πολλών διεπαφών Μόνο ένας κοιλιακόςtracκατηγορίας t
Structure Abstracμέθοδοι t Abstracμέθοδοι t & σκυροδέματος
Πότε να χρησιμοποιήσετε Μελλοντική βελτίωση Για να αποφύγει την ανεξαρτησία
Κληρονομικότητα/ Υλοποίηση Μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές Η κλάση μπορεί να κληρονομήσει μόνο ένα AbstracΤάξη t
Προεπιλεγμένη υλοποίηση Ενώ προσθέτετε νέα πράγματα στη διεπαφή, είναι εφιάλτης να βρείτε όλους τους υλοποιητές και να εφαρμόσετε πρόσφατα καθορισμένα πράγματα. Σε περίπτωση κοιλιακώνtracΣτην κλάση t, μπορείτε να επωφεληθείτε από την προεπιλεγμένη υλοποίηση.
Τροποποιητές πρόσβασης Η διεπαφή δεν έχει τροποποιητές πρόσβασης. Ό,τι ορίζεται μέσα στη διεπαφή θεωρείται ως δημόσιος τροποποιητής. AbstracΗ κλάση t μπορεί να έχει έναν τροποποιητή πρόσβασης.
Πότε να χρησιμοποιήσετε Είναι καλύτερα να χρησιμοποιείτε τη διεπαφή όταν διάφορες υλοποιήσεις μοιράζονται μόνο υπογραφή μεθόδου. Πολυμορφική ιεραρχία τύπων αξίας. Θα πρέπει να χρησιμοποιείται όταν διάφορες υλοποιήσεις του ίδιου είδους έχουν κοινή συμπεριφορά.
Πεδία δεδομένων η διεπαφή δεν μπορεί να περιέχει πεδία δεδομένων. η κλάση μπορεί να έχει πεδία δεδομένων.
Προεπιλογή πολλαπλής κληρονομιάς Μια κλάση μπορεί να υλοποιήσει πολλές διεπαφές. Μια κλάση κληρονομεί μόνο ένα κοιλιακόtracτάξη τ.
Εκτέλεση Μια διεπαφή είναι abstracέτσι ώστε να μην μπορεί να παρέχει κανέναν κώδικα. Ένας κοιλιακόςtracΗ κλάση t μπορεί να δώσει πλήρη, προεπιλεγμένο κώδικα ο οποίος θα πρέπει να παρακαμφθεί.
Χρήση τροποποιητών Access Δεν μπορείτε να χρησιμοποιήσετε τροποποιητές πρόσβασης για τη μέθοδο, τις ιδιότητες κ.λπ. Μπορείτε να χρησιμοποιήσετε κοιλιακούςtracκλάση t που περιέχει τροποποιητές πρόσβασης.
Χρήση Οι διεπαφές βοηθούν στον καθορισμό των περιφερειακών ικανοτήτων μιας κλάσης. Ένας κοιλιακόςtracΗ κλάση t ορίζει την ταυτότητα μιας κλάσης.
Καθορισμένα πεδία Δεν μπορούν να οριστούν πεδία Ένας κοιλιακόςtracΗ κλάση t σας επιτρέπει να ορίσετε τόσο πεδία όσο και σταθερές
Κληρονομία Μια διεπαφή μπορεί να κληρονομήσει πολλαπλές διεπαφές, αλλά δεν μπορεί να κληρονομήσει μια κλάση. Ένας κοιλιακόςtracΗ κλάση t μπορεί να κληρονομήσει μια κλάση και πολλαπλές διεπαφές.
Κατασκευαστής ή καταστροφείς Μια διεπαφή δεν μπορεί να δηλώσει κατασκευαστές ή καταστροφείς. Ένας κοιλιακόςtracΗ κλάση t μπορεί να δηλώσει κατασκευαστές και καταστροφείς.
Όριο επεκτάσεων Μπορεί να επεκτείνει οποιονδήποτε αριθμό διεπαφών. Μπορεί να επεκτείνει μόνο μία κατηγορία ή έναν κοιλιακόtract τάξη κάθε φορά.
Abstracλέξη-κλειδί t Σε κοιλιακούςtracΗ λέξη-κλειδί διεπαφής t, είναι προαιρετική για τη δήλωση μιας μεθόδου ως abstract. Σε κοιλιακούςtracκατηγορία t, οι κοιλιακοίtracΗ λέξη-κλειδί t είναι υποχρεωτική για τη δήλωση μιας μεθόδου ως abstract.
Τύπος τάξης Μια διεπαφή μπορεί να έχει μόνο δημόσια abstracμέθοδοι t. Ένας κοιλιακόςtracΗ κλάση t έχει προστατευμένα και δημόσια abstracμέθοδοι t.

Δείγμα κώδικα για Interface και AbstracΤάξη σε Java

Ακολουθεί ένα δείγμα κώδικα για τη δημιουργία μιας διεπαφής και abstracτάξη σε Java

Σύνταξη διεπαφής

interface name{
//methods
}

Java Παράδειγμα διεπαφής:

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

AbstracΣύνταξη Κλάσης t

abstract class name{
    // code
}

Abstracπαράδειγμα κλάσης t:

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

Συνοψίστε αυτήν την ανάρτηση με: