Verschil tussen klasse en interface in Java

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 12 Kunnen 2024
Anonim
Difference between abstract class and interface in java | Interface Vs Abstract Class
Video: Difference between abstract class and interface in java | Interface Vs Abstract Class

Inhoud


Klasse en interface worden beide gebruikt om nieuwe referentietypen te maken. Een klasse is een verzameling velden en methoden die op velden werken. Een interface heeft volledig abstracte methoden, d.w.z. methoden met niemand. Een interface is syntactisch vergelijkbaar met de klasse, maar er is een groot verschil tussen klasse en interface die een klasse kan worden gestart, maar een interface kan nooit worden gemaakt. Laten we dus wat meer verschil leren tussen een klasse en interface met behulp van een onderstaande vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingKlasseKoppel
basis-Een klasse wordt geïnstantieerd om objecten te maken.Een interface kan nooit worden gestart omdat de methoden geen actie kunnen uitvoeren bij het aanroepen.
keywordklassekoppel
ToegangsspecificatieDe leden van een klas kunnen privé, openbaar of beschermd zijn.De leden van een interface zijn altijd openbaar.
methoden De methoden van een klasse zijn gedefinieerd om een ​​specifieke actie uit te voeren.De methoden in een interface zijn puur abstract.
Implementeren / ExtendEen klasse kan een willekeurig 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 te initialiseren is.


Definitie van klasse

Een klasse is een belangrijk aspect van Java-programmering, zonder klassen kunt u geen Java-programma implementeren. Een klasse maakt referentietypes en deze referentietypes worden gebruikt om objecten te maken. Een klas heeft een handtekening en een lichaam. Handtekening van een klasse heeft de naam en informatie van de klasse die aangeeft of de klasse een andere klasse heeft geërfd. Het hoofdgedeelte van een klasse heeft velden en methoden die op die velden werken. Een klasse wordt gemaakt met behulp van een trefwoord klasse. Laat ons zien hoe een klasse aan te geven.

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 de statische leden is constant voor elk object, terwijl de niet-statische leden door elk object anders worden geïnitialiseerd volgens 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 beveiligd. Een klasse kan worden overgeërfd door een andere klasse met behulp van de toegangsspecificatie die de zichtbaarheid van leden van een superklasse (overgeërfde klasse) in een subklasse (overgeërfde klasse) zal bepalen. Aldus voldoet klasse aan het concept van het verbergen en inkapselen van gegevens in Object Oriented programmeren.

Definitie van interface

Een interface is ook een van de referentietypen die in Java zijn gedefinieerd. Het belang van een interface is dat een klasse in Java slechts één klasse kan erven. Om deze beperking te voorkomen, hebben de ontwerpers van Java een concept van interface geïntroduceerd. Een interface is syntactisch vergelijkbaar met een klasse, maar ontbreekt in velddeclaratie en de methoden in een interface hebben geen implementatie. Een interface wordt verklaard met behulp van een trefwoord koppel. Laten we de verklaring van een interface bekijken.

interface interface_naam {type var_name = waarde; type method1 (parameterlijst); type method2 (parameterlijst); . . }

Een interface definieert geen enkele methode die erin wordt aangegeven, omdat het ontbreekt in velden om op 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 constructors, omdat het ontbreekt aan veldleden om te initialiseren. Een interface definieert dus alleen wat een klasse moet doen in plaats van hoe het moet.

Een eenmaal gemaakte interface kan worden geïmplementeerd door een willekeurig aantal klassen met behulp van een trefwoord gereedschap. 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 uitbreiden trefwoord. Als een klasse een interface implementeert die een andere interface uitbreidt. Vervolgens moet een klasse de methoden definiëren voor beide interfaces die in een keten worden weergegeven. De methoden in een interface moeten altijd openbaar zijn, omdat ze toegankelijk moeten zijn voor de klassen die ze implementeren.

Belangrijkste verschillen tussen klasse en interface in Java

  1. Een klasse kan worden geïnstantieerd door objecten te maken. Een interface wordt nooit geïnstantieerd omdat de in een interface aangegeven methoden abstract zijn en geen enkele actie uitvoeren, dus het heeft geen zin om een ​​interface te instantiëren.
  2. Een klasse wordt verklaard met behulp van een trefwoordklasse. Op dezelfde manier wordt een interface gemaakt met behulp van een trefwoordinterface.
  3. De leden van een klasse kunnen de toegangsspecificatie hebben zoals openbaar, privé, beveiligd. Maar de leden van een interface zijn altijd openbaar omdat ze moeten worden benaderd door de klassen die ze implementeren.
  4. De methoden in een klasse zijn gedefinieerd om een ​​actie uit te voeren op de velden die in de klasse zijn opgegeven. Omdat interface ontbreekt in de declaratie van velden, zijn de methoden in een interface puur abstract.
  5. Een klasse kan een willekeurig aantal interfaces implementeren, maar kan slechts één superklasse uitbreiden. Een interface kan een willekeurig aantal interfaces uitbreiden, maar kan geen enkele interface implementeren.
  6. In een klasse zijn constructors gedefinieerd om de variabele te initialiseren. Maar een interface heeft geen constructors omdat er geen velden zijn om te initialiseren. De velden van een interface worden alleen geïnitialiseerd op het moment van hun aangifte.

Gevolgtrekking:

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.