Verschil tussen klasse en interface

Belangrijkste verschil - Klasse vs Interface
 

Object-Oriented Programming (OOP) is een veelvoorkomend paradigma in softwareontwikkeling. Het helpt om real-world scenario's naar programmeren te brengen met behulp van klassen en objecten. Een klas is een blauwdruk om een ​​object te maken. De programmeur kan een klasse maken met eigenschappen en methoden. Een student en een leraar zijn objecten. Het maken van een object staat bekend als instantiatie. OOP maakt ook gebruik van interfaces. Interfaces en klasse lijken misschien op elkaar, maar ze hebben een verschil. Dit artikel bespreekt het verschil tussen een klasse en een interface. De belangrijk verschil tussen een klasse en een interface is dat een klasse is een referentietype dat een blauwdruk is om een ​​object te instantiëren, terwijl de interface een referentietype is dat niet kan worden gebruikt om een ​​object te instantiëren.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is Klasse
3. Wat is Interface
4. Overeenkomsten tussen klasse en interface
5. Vergelijking zij aan zij - Klasse versus interface in tabelvorm
6. Samenvatting

Wat is Klasse?

In OOP wordt alles als een object beschouwd. Het is niet mogelijk om een ​​object zonder klasse te maken. Een klas is een blauwdruk om een ​​object te maken. Bij het bouwen van een huis tekent de architect het plan. Het plan is vergelijkbaar met een klas. Het huis is vergelijkbaar met het object. De klas is het plan om een ​​object te bouwen. Een object is wat is gemaakt met behulp van de klasse.

De klasse bevat de eigenschappen en methoden. Een student kan eigenschappen hebben zoals naam, cijfer, indexnummer. Een student kan methoden hebben zoals lezen, wandelen, studeren. Er wordt een klasse gemaakt met de benodigde eigenschappen en methoden.

De syntaxis voor het maken van een klasse in veel programmeertalen is als volgt. Het is gemaakt met behulp van de sleutelwoordklasse.

class class_name

// eigenschappen

// methoden

Programmeertalen zoals C # en Java volgen een vergelijkbare syntaxis om een ​​object te maken met behulp van een klasse. Stel dat de klasnaam Student is.

Student s1 = nieuwe student ();

Deze s1 is het object. Het "nieuwe" sleutelwoord wordt gebruikt om geheugen voor de eigenschappen toe te wijzen. Een klasse heeft ook een constructor om eigenschappen of variabelen te initialiseren.

Klasse-leden zoals eigenschappen en methoden hebben toegangsmodificatoren. Toegangsspecificaties beschrijven de toegankelijkheid en zichtbaarheid van die leden voor andere klassen. Leden van de klas kunnen toegangsspecificaties hebben, zoals openbaar, privé en beschermd. Publieke leden zijn toegankelijk voor andere klassen. Privé-leden zijn alleen toegankelijk voor de klas. Beschermde leden zijn toegankelijk binnen de klasse en relevante subklassen.

Wat is Interface?

Abstractie is een pijler van objectgeoriënteerde programmering. Het is om de implementatiedetails te verbergen en de functionaliteit aan de gebruiker weer te geven. Abstractie wordt bereikt met behulp van abstracte klassen en interfaces. Een abstracte methode heeft geen implementatie. Een klasse die ten minste één abstracte methode bevat, wordt een abstracte klasse genoemd.

Als er twee abstracte klassen zijn, moeten de methoden die in die klassen zijn gedeclareerd, worden geïmplementeerd. Een nieuwe klasse wordt gebruikt om die methoden te implementeren. Als beide klassen dezelfde methode hadden, zou dit een dubbelzinnigheidsprobleem kunnen veroorzaken. Daarom hebben programmeertalen zoals Java en C # een interface.

Interfaces bevatten alleen de declaratie van methoden. Er is geen implementatiemethode. Ook kunnen interfaces niet worden gebruikt om objecten te maken. Ze worden gebruikt om meerdere overnamen te ondersteunen en om de code te beveiligen.

De syntaxis van Interface is als volgt. Interface gebruikt het sleutelwoord "interface".

interface interface_naam

type methode1 (parameterlijst);

type methode2 (parameterlijst);

Volgens het bovenstaande hebben interfaces alleen de verklaring. Er is geen definitie. Dus interfaces kunnen geen objecten instantiëren. Het geeft alleen een abstract beeld van wat de interface is. Methoden die in de interface zijn gedeclareerd, kunnen door een of meerdere klassen worden geïmplementeerd. Een klasse gebruikt het sleutelwoord "implementeren" om een ​​interface te implementeren. Refereer hieronder voorbeeld geschreven met behulp van Java.

Figuur 01: Programma met behulp van interfaces

Volgens het bovenstaande programma zijn A en B interfaces. Interface A heeft een methode-declaratie die de som () is. Interface B heeft een methode declaratie sub (). Klasse C implementeert beide interfaces die A en B zijn. Daarom definiëren klasse C zowel sum () als sub () methoden. Na het maken van het object van type C is het mogelijk om beide methoden sum () en sub () aan te roepen.

Methoden die in de interface worden gedeclareerd, moeten altijd openbaar zijn omdat de implementatieklassen deze definiëren. Een interface kan ook overerven van een andere interface.

Wat zijn de overeenkomsten tussen klasse en interface?

  • Beide zijn referentietypen.
  • Beide hebben betrekking op objectgerichte programmering.

Wat is het verschil tussen klasse en interface?

Klasse versus interface

Een klasse is een referentietype dat een blauwdruk is om een ​​object te maken. Een interface is een referentietype dat niet kan worden geïnstantieerd.
 Object Instantiation
Een klasse wordt gebruikt om een ​​object te instantiëren. Een interface kan niet worden geïnstantieerd omdat de methoden geen actie kunnen uitvoeren.
bouwer
Een klasse bevat een constructor om de variabelen te initialiseren. Een interface bevat geen constructor, omdat het nauwelijks variabelen zijn om te initialiseren.
 keyword
Een klasse gebruikt het sleutelwoord "klasse". Een interface gebruikt het sleutelwoord "interface".
Access Specifier
Leden van de klas kunnen privé, openbaar en beschermd zijn. Leden van de interface moeten altijd openbaar zijn omdat de implementatieklassen deze definiëren.

Samenvatting - Klasse vs Interface

Klassen en interfaces worden veel gebruikt in Object Oriented Programming. Het verschil tussen een klasse en een interface is dat een klasse een referentietype is dat een blauwdruk is om een ​​object te instantiëren en interface is een referentietype dat niet kan worden gebruikt om een ​​object te instantiëren. Een klasse kan vele interfaces implementeren. Maar het kan maar één superklasse uitbreiden. In de interface kunnen veel interfaces overerven, maar er kan geen implementatie zijn. Beide hebben hun belang. De programmeur kan ze gebruiken in overeenstemming met ontwikkelende software.

Download de PDF Class vs Interface

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download hier de pdf-versie Difference Between Class and Interface

Referentie:

1.tutorialspoint.com. "Java-object en -klassen.", Het punt. Beschikbaar Hier 
2.navinreddy20. De interface in Java met een voorbeeld, Java By Navin Reddy, 11 december 2012. Beschikbaar Hier