Różnica między klasą abstrakcyjną a interfejsem w Javie
w tym artykule omówimy różnicę między klasą abstrakcyjną a interfejsem w Javie za pomocą przykładów. Omówiłem abstrakcyjną klasę i interfejs w oddzielnych samouczkach koncepcji OOPs, więc polecam najpierw przeczytać je, zanim przejdę do różnic.
1. Abstract class in java
2.,tected i publiczne metody abstrakcyjne
każdy z wyżej wymienionych punktów jest wyjaśniony poniższym przykładem:
klasa abstrakcyjna vs interfejs w Javie
różnica nr,1: klasa abstrakcyjna może rozszerzać tylko jedną klasę lub jedną klasę abstrakcyjną na raz
Wyjście:
display3 method
interfejs może rozszerzać dowolną liczbę interfejsów na raz
Wyjście:
display2 method
różnica nr 2: klasa abstrakcyjna może być rozszerzona(dziedziczona) przez klasę lub klasę abstrakcyjną
wyjście:
Example4-display2 method
interfejsy mogą być rozszerzane tylko przez interfejsy. Klasy muszą je zaimplementować zamiast rozszerzyć
wyjście:
display1 method
różnica nie.,3: klasa abstrakcyjna może mieć zarówno metody abstrakcyjne, jak i konkretne
interfejs może mieć tylko metody abstrakcyjne, nie mogą mieć konkretnych metod
wyjście:
display1 method
różnica nr 4: w klasie abstrakcyjnej słowo kluczowe 'abstract' jest obowiązkowe, aby zadeklarować metodę jako abstrakcję
w interfejsach słowo kluczowe 'abstract' jest opcjonalne, aby zadeklarować metodę jako abstrakcję, ponieważ wszystkie metody są abstract by default
difference no.,5: klasa abstrakcyjna może mieć chronione i publiczne metody abstrakcyjne
interfejs może mieć tylko publiczne metody abstrakcyjne
różnica nr 6: klasa abstrakcyjna może mieć statyczne, końcowe lub statyczne zmienne końcowe z dowolnym specyfikatorem dostępu
interfejs może mieć tylko publiczną statyczną ostateczną (stałą) zmienną