Vergelijkingstabel
Basis voor vergelijking | Klasse | Interface |
---|---|---|
basis- | Een klasse wordt geïnstantieerd om objecten te maken. | Een interface kan nooit worden geïnstantieerd omdat de methoden geen actie kunnen uitvoeren bij het oproepen. |
keyword | klasse | interface |
Toegangsspecificatie | De leden van een klasse kunnen privé, openbaar of beschermd zijn. | De leden van een interface zijn altijd openbaar. |
methoden | De methoden van een klasse worden gedefinieerd om een specifieke actie uit te voeren. | De methoden in een interface zijn puur abstract. |
Implementeren / Extend | Een klasse kan elk aantal interfaces implementeren en kan slechts één klasse uitbreiden. | Een interface kan meerdere interfaces uitbreiden, maar kan geen enkele interface implementeren. |
bouwer | Een klasse kan constructors hebben om de variabelen te initialiseren. | Een interface kan nooit een constructor hebben, omdat er nauwelijks een variabele kan worden geïnitialiseerd. |
Definitie van klasse
Een klasse is een belangrijk aspect van Java-programmering zonder klassen, je kunt een Java-programma niet implementeren. Een klasse maakt referentietypen en deze referentietypen worden gebruikt om objecten te maken. Een klas heeft een handtekening en een lichaam. De handtekening van een klasse heeft de naam van de klas en informatie die aangeeft of de klasse een andere klasse heeft geërfd. Het lichaam van een klasse heeft velden en methoden die op die velden werken. Een klasse wordt gemaakt met behulp van een zoekwoordklasse. Laat ons zien hoe een klasse te verklaren.
class class_name {/ * velden ... methoden * /}
Wanneer een klasse wordt geïnstantieerd, bevat elk gemaakt object een kopie van velden en methoden. De velden en leden die binnen een klasse zijn gedeclareerd, kunnen statisch of niet-statisch zijn. De waarde van statische leden is constant voor elk object, terwijl de niet-statische leden door elk object anders worden geïnitialiseerd op basis van de vereiste.
Leden van een klasse hebben toegangsspecificaties die de zichtbaarheid en toegankelijkheid van de leden voor de gebruiker of voor de subklassen bepalen. De toegangsspecificaties zijn openbaar, privé en beschermd. Een klasse kan worden overgenomen door een andere klasse met behulp van de toegangsspecificatie die de zichtbaarheid van leden van een superklasse (geërfde klasse) in een subklasse (overervingsklasse) bepaalt. Dus klasse vervult het concept van gegevensverbergen en inkapseling in objectgeoriënteerde programmering.
Definitie van interface
Een interface behoort ook tot de referentietypen die in Java zijn gedefinieerd. Het belang van een interface is dat een klasse in Java maar één klasse kan erven. Om deze beperking te voorkomen introduceerden de ontwerpers van Java een concept van interface. Een interface is syntactisch vergelijkbaar met een klasse, maar het ontbreekt aan een veldverklaring en de methoden in een interface hebben geen enkele implementatie. Een interface wordt gedeclareerd met behulp van een sleutelwoordinterface. Laten we de verklaring van een interface bekijken.
interface interface_naam {type var_name = waarde; type methode1 (parameterlijst); type methode2 (parameterlijst); . . }
Een interface definieert geen enkele daarin gedeclareerde methode omdat het ontbreekt aan velden om te werken. Alleen omdat elke methode in een interface geen actie uitvoert, kan een interface nooit worden geïnstantieerd. Als een interface een veldlid heeft, moet deze worden geïnitialiseerd op het moment van hun verklaring. Een interface bevat nooit constructeurs omdat het ontbreekt aan veldleden om te initialiseren. Dus, een interface definieert alleen wat een klasse moet doen in plaats van hoe het moet.
Een eenmaal gemaakte interface kan door een willekeurig aantal klassen worden geïmplementeerd met behulp van sleutelwoordinstrumenten. Maar de klassen die een interface implementeren, moeten alle methoden in een interface definiëren. Een interface kan ook een andere interface erven met behulp van het trefwoord extend . Als een klasse een interface implementeert die een andere interface uitbreidt. Vervolgens moet een klasse de methoden definiëren van beide interfaces die in een keten verschijnen. De methoden in een interface moeten altijd openbaar zijn, omdat ze moeten worden benaderd door de klassen die ze implementeren.
Belangrijkste verschillen tussen klasse en interface in Java
- Een klasse kan worden geïnstantieerd door zijn objecten te maken. Een interface wordt nooit geïnstantieerd omdat de binnen een interface gedeclareerde methoden abstract zijn en geen actie uitvoeren, dus er is geen gebruik van het instantiëren van een interface.
- Een klasse wordt gedeclareerd met behulp van een zoekwoordklasse. Op dezelfde manier wordt een interface gemaakt met behulp van een sleutelwoordinterface.
- De leden van een klasse kunnen de toegangsspecificatie hebben zoals openbaar, privé, beschermd. Maar de leden van een interface zijn altijd openbaar omdat ze moeten worden benaderd door de klassen die ze implementeren.
- De methoden in een klasse worden gedefinieerd om een actie uit te voeren op de velden die in de klas zijn gedeclareerd. Omdat de interface geen velden aangeeft, zijn de methoden in een interface puur abstract.
- Een klasse kan elk aantal interfaces implementeren, maar kan slechts één superklasse uitbreiden. Een interface kan elk aantal interfaces uitbreiden, maar kan geen enkele interface implementeren.
- Een klasse heeft constructors die erin zijn gedefinieerd om de variabele geïnitialiseerd te krijgen. Maar een interface heeft geen constructeurs omdat er geen velden geïnitialiseerd hoeven te worden. De velden van een interface worden geïnitialiseerd op het moment van hun aangifte.
Conclusie:
Beide klassen en interfaces hebben hun eigen belang. Een klasse wordt gebruikt wanneer we moeten definiëren hoe de taak zou worden uitgevoerd. Een interface wordt gebruikt wanneer we moeten weten welke taak moet worden uitgevoerd.