Różnica między mięśniami brzuchatracKlasa t i interfejs w Java

Kluczowa różnica między mięśniami brzuchatracKlasa t i interfejs w Java

  • W interfejsie klasa może implementować wiele interfejsów, podczas gdy klasa może dziedziczyć tylko jeden AbstracKlasa t.
  • W interfejsie nie ma modyfikatorów dostępu. Zakłada się, że wszystko, co jest zdefiniowane w interfejsie, ma publiczny modyfikator, podczas gdy AbstracKlasa t może mieć modyfikator dostępu.
  • Interfejs nie może zawierać pól danych, podczas gdy abstracKlasa t może zawierać pola danych.
  • Interfejsy pomagają zdefiniować peryferyjne możliwości klasy, podczas gdy interfejsy abstracKlasa t definiuje tożsamość klasy.

Interfejs kontra AbstracKlasa t w Java

Co to jest AbstracKlasa t?

Klasa, która ma brzuchtracSłowo kluczowe t w swojej deklaracji nazywa się abstracKlasa t. Mięśnie brzuchatraczajęcia powinny mieć zero lub więcej abstracMetody t, tj. metody bez ciała. Może mieć wiele metod konkretnych. AbstracKlasy t umożliwiają tworzenie projektów dla konkretnych klas. Jednak klasa dziedzicząca powinna implementowaćtracMetoda t. AbstracNie można tworzyć instancji klas t.

Ważne powody korzystania z interfejsów

  • Interfejsy służą do osiągnięcia abstraccja.
  • Zaprojektowany, aby wspierać dynamiczne rozpoznawanie metod w czasie wykonywania
  • Pomaga uzyskać luźne połączenie.
  • Umożliwia oddzielenie definicji metody od hierarchii dziedziczenia

Ważne powody stosowania AbstracKlasa t

  • AbstracKlasy t oferują domyślną funkcjonalność dla podklas.
  • Udostępnia szablon dla przyszłych określonych klas
  • Pomaga zdefiniować wspólny interfejs dla jego podklas
  • AbstracKlasa t pozwala na ponowne wykorzystanie kodu.

Co to jest interfejs?

Interfejs to projekt, którego można użyć do implementacji klasy. Interfejs nie zawiera żadnych konkretnych metod (metod z kodem). Wszystkie metody interfejsu są abs.tracMetody t. Interfejsu nie można utworzyć. Klasy implementujące interfejsy mogą jednak zostać utworzone. Interfejsy nigdy nie zawierają zmiennych instancji, ale mogą zawierać publiczne, statyczne zmienne finalne (tj. stałe zmienne klasowe).

Różnica między interfejsem a AbstracKlasa t w Java

Mięśnie brzuchatracKlasa t pozwala na tworzenie funkcjonalności, którą podklasy mogą implementować lub nadpisywać, podczas gdy interfejs pozwala jedynie na określenie funkcjonalności, ale nie na jej implementację. Klasa może rozszerzać tylko jeden element abs.tracKlasa t, podczas gdy klasa może implementować wiele interfejsów.

Parametry Interfejs Abstracklasa T
Prędkość Zwolnij pompatyczność
Wiele spadków Zaimplementuj kilka interfejsów Tylko jeden brzuchtracklasa T
Structure Abstracmetody t Abstract i konkretne metody
Kiedy używać Przyszłe rozszerzenie Aby uniknąć niepodległości
Dziedziczenie/implementacja Klasa może implementować wiele interfejsów Klasa może odziedziczyć tylko jeden AbstracKlasa t
Domyślna implementacja Podczas dodawania nowych rzeczy do interfejsu znalezienie wszystkich implementatorów i zaimplementowanie nowo zdefiniowanych rzeczy jest koszmarem. W przypadku AbstracKlasa t, możesz skorzystać z domyślnej implementacji.
Modyfikatory dostępu Interfejs nie posiada modyfikatorów dostępu. Zakłada się, że wszystko zdefiniowane wewnątrz interfejsu jest modyfikatorem publicznym. AbstracKlasa t może mieć modyfikator dostępu.
Kiedy używać Lepiej jest używać interfejsu, gdy różne implementacje współdzielą tylko sygnaturę metody. Polimorficzna hierarchia typów wartości. Należy go stosować, gdy różne implementacje tego samego rodzaju mają wspólne zachowanie.
Pola danych interfejs nie może zawierać pól danych. klasa może mieć pola danych.
Domyślne dziedziczenie wielokrotne Klasa może implementować wiele interfejsów. Klasa dziedziczy tylko jeden element abstracklasa t.
Wdrożenie Interfejs jest abstractak, że nie może podać żadnego kodu. Mięśnie brzuchatracKlasa t może podać kompletny, domyślny kod, który należy nadpisać.
Stosowanie modyfikatorów dostępu Nie można używać modyfikatorów dostępu dla metody, właściwości itp. Możesz użyć mięśnia brzuchatracKlasa t zawierająca modyfikatory dostępu.
Stosowanie Interfejsy pomagają zdefiniować peryferyjne możliwości klasy. Mięśnie brzuchatracKlasa t definiuje tożsamość klasy.
Zdefiniowane pola Nie można zdefiniować żadnych pól Mięśnie brzuchatracKlasa t pozwala na definiowanie zarówno pól, jak i stałych
Dziedzictwo Interfejs może dziedziczyć wiele interfejsów, ale nie może dziedziczyć klasy. Mięśnie brzuchatracKlasa t może dziedziczyć klasę i wiele interfejsów.
Konstruktor lub destruktor Interfejs nie może deklarować konstruktorów ani destruktorów. Mięśnie brzuchatracKlasa t może deklarować konstruktory i destruktory.
Limit rozszerzeń Może rozszerzać dowolną liczbę interfejsów. Może rozszerzyć tylko jedną klasę lub jeden abstracklasa po klasie.
Abstracsłowo kluczowe t W mięśniach brzuchatracSłowo kluczowe interfejsu t jest opcjonalne w przypadku deklarowania metody jako abstract. W mięśniach brzuchatracklasa t, mięśnie brzuchatracSłowo kluczowe t jest obowiązkowe przy deklarowaniu metody jako abstract.
Typ klasy Interfejs może mieć tylko publiczne abstracmetody t. Mięśnie brzuchatracKlasa t ma chronione i publiczne abstracmetody t.

Przykładowy kod dla interfejsu i AbstracKlasa t w Java

Poniżej znajduje się przykładowy kod umożliwiający utworzenie interfejsu i abstracklasa t w Java

Składnia interfejsu

interface name{
//methods
}

Java Przykład interfejsu:

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();
    }
}

AbstracSkładnia klasy t

abstract class name{
    // code
}

Abstracprzykład klasy 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));
    }
}

Podsumuj ten post następująco: