Wat is het verschil tussen abstracte klasse en interface in Java

De grootste verschil tussen abstracte klasse en interface in Java is dat het abstracte klasse wordt gebruikt om abstractie te implementeren, terwijl interface wordt gebruikt om zowel abstractie als meerdere overerving te implementeren.

Een belangrijke pijler bij Object Oriented Programming (OOP) is Abstraction. Het is het proces van het verbergen van de implementatiegegevens en het weergeven van alleen de functionaliteit voor de gebruiker. De gebruiker hoeft bijvoorbeeld het circuit in de afstandsbediening niet te begrijpen om het te bedienen. Abstractie is vergelijkbaar met dat. Hiermee kan de programmeur zich concentreren op wat het object doet in plaats van hoe het wordt gedaan. In Java zijn er twee methoden om abstractie te bereiken: door abstracte klassen te gebruiken en door interfaces te gebruiken. Bovendien is overerving een andere OOP-pijler. Het verwijst naar het gebruik van gegevens en methoden van een reeds bestaande klasse. Meerdere overerving verwijst naar het gebruik van gegevens en methoden van meerdere klassen. Het is mogelijk om meerdere overerving te implementeren met behulp van interfaces.

Key Areas Covered

1. Wat is Abstract Class in Java
     - Definitie, functionaliteit
2. Wat is Interface in Java
     - Definitie, functionaliteit
3. Wat is het verschil tussen abstracte klasse en interface in Java
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

Abstracte klasse, interface, meerdere overerving

Wat is Abstract Class in Java

Een klasse die is gedeclareerd met het abstracte trefwoord staat bekend als een abstracte klasse. Een abstracte klasse kan zowel abstracte methoden als niet-abstracte methoden hebben. Een klasse kan een abstracte klasse uitbreiden en de abstracte methoden van de abstracte klasse implementeren. Het is niet mogelijk om objecten uit een abstracte klasse te maken, maar het is mogelijk om objecten te maken van een klasse die de abstracte klasse uitbreidt. Raadpleeg het onderstaande voorbeeld.

Figuur 1: Vorm abstracte klasse

Figuur 2: Rechthoekklasse

Figuur 3: Hoofdklasse voor programma 1

Vorm is een abstracte klasse. Het heeft de abstracte methode tekenen en niet-abstracte methode weergeven. De klasse Rectangle verlengt Shape. Daarom implementeert de klasse Rectangle de abstracte methode-trekking. In de hoofdfunctie wordt een object Rectangle gemaakt. De obj.draw () roept de methode op in Rectangle draw () en het zal "Rectangle" afdrukken.  

Wat is Interface in Java

Een interface in Java is vergelijkbaar met een klasse. Alle methoden in een interface zijn abstracte methoden. Net als bij een abstracte klasse kan een interface niet worden geïnstantieerd. Een interface kan zowel voor abstractie als voor de implementatie van meerdere overerving worden gebruikt. Een interface wordt gedeclareerd met behulp van het sleutelwoord van de interface. Een klasse die de interface implementeert, moet alle in de interface gedeclareerde methoden implementeren. Raadpleeg het onderstaande voorbeeld dat het gebruik van de interface illustreert om abstractie te bereiken.

Figuur 4: Vorminterface

Figuur 5: Circle-klasse

Figuur 6: Hoofdklasse van programma 2

Shape is een interface met een abstracte methode genaamd draw. De klasse Circle breidt Shape uit. Daarom implementeert de Circle-klasse de abstracte methode-trekking. In de hoofdfunctie wordt een Circle-object gemaakt. De s.draw () roept de methode-trekking op in Circle en het zal "Circle" afdrukken. 

Interfaces kunnen ook worden gebruikt om meerdere overerving te implementeren.

Figuur 7: Interface A

Figuur 8: Interface B

Figuur 9: Klasse C

Figuur 10: Hoofdklasse van programma 3

Interface A en B hebben beide de abstracte methode-weergave. Klasse C implementeert zowel interface A als B. Klasse C biedt de implementatie voor methode-weergave. In de hoofdmethode wordt een object van C gemaakt. Het object obj.display roept de weergavemethode op in C en drukt "Hallo wereld!".

Verschil tussen abstracte klasse en interface in Java

Definitie

Een abstracte klasse is een klasse die is gedeclareerd met een abstract trefwoord, een verzameling abstracte en niet-abstracte methoden. Een interface in Java daarentegen is een referentietype dat vergelijkbaar is met een klasse die een verzameling abstracte methoden is. Dit is het basisverschil tussen abstracte klasse en interface in Java.

Variabelen

De gebruikte variabelen is een verschil tussen abstracte klasse en interface in Java. Hoewel een abstracte klasse definitieve, niet-definitieve, statische en niet-statische variabelen kan hebben, kan een interface alleen statische en eindvariabelen bevatten.

methoden

Een ander verschil tussen abstracte klasse en interface in Java is dat abstracte klasse abstracte methoden en niet-abstracte methoden kan hebben, terwijl de interface alleen abstracte methoden kan hebben.

Meervoudige overerving

Bovendien kunnen abstracte klassen niet worden gebruikt om meerdere overerving te implementeren. Maar interfaces kunnen worden gebruikt om meerdere interfaces te implementeren. Daarom kunnen we de toepasbaarheid als een verschil tussen abstracte klasse en interface in Java zeggen.

Sleutelwoord van de klasse

Het abstracte trefwoord wordt ook gebruikt om de abstracte klasse te declareren, maar het interface-sleutelwoord wordt gebruikt om een ​​interface te declareren. 

Uitbreiden en implementeren

Daarnaast kan een abstracte klasse worden uitgebreid met het trefwoord "extends". Een interfaceklasse kan worden geïmplementeerd met behulp van trefwoord "implementeert".

Implementatie

Verder kan abstracte klasse worden geïmplementeerd met sleutelwoord "implementeert" terwijl interface wordt gebruikt om zowel abstractie als meerdere overerving te implementeren..

Conclusie

Het verschil tussen abstracte klasse en interface in Java is dat abstracte klasse wordt gebruikt om abstractie te implementeren, terwijl interface wordt gebruikt om zowel abstractie als meerdere overerving te implementeren..

Referentie:

1. "Abstracte klasse in Java - Javatpoint." Www.javatpoint.com, hier beschikbaar.
2. "Interface in Java - Javatpoint." Www.javatpoint.com, hier beschikbaar.