Skillnad mellan klass och gränssnitt

Huvudskillnad - Klass vs gränssnitt
 

Objektorienterad programmering (OOP) är ett gemensamt paradigm inom mjukvaruutveckling. Det hjälper till att ta fram verkliga scenarier till programmering med hjälp av klasser och objekt. En klass är en ritning för att skapa ett objekt. Programmeraren kan skapa en klass med egenskaper och metoder. En student och lärare är föremål. Att skapa ett objekt är känt som instansiering. OOP använder också gränssnitt. Gränssnitt och klass kan tyckas likna, men de har en skillnad. I denna artikel diskuteras skillnaden mellan en klass och ett gränssnitt. De nyckelskillnad mellan en klass och ett gränssnitt är det en klass är en referenstyp som är en blueprint för att instantiera ett objekt medan gränssnittet är en referenstyp som inte kan användas för att instantiera ett objekt.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är klass
3. Vad är gränssnitt
4. Likheter mellan klass och gränssnitt
5. Jämförelse vid sida vid sida - Klass vs gränssnitt i tabellform
6. Sammanfattning

Vad är klass?

I OOP betraktas allt som ett objekt. Det går inte att skapa ett objekt utan en klass. En klass är en ritning för att skapa ett objekt. När man bygger ett hus, bygger arkitekten planen. Planen liknar en klass. Huset liknar föremålet. Klassen är planen att bygga ett objekt. Ett objekt är det som skapas med klassen.

Klassen innehåller egenskaper och metoder. En elev kan ha egenskaper som namn, betyg, indexnummer. En elev kan ha metoder som att läsa, gå och studera. En klass skapas med nödvändiga egenskaper och metoder.

Syntaxen för att skapa en klass på många programmeringsspråk är som följer. Det skapas med hjälp av sökordsklassen.

klass klassnamn

// egenskaper

// metoder

Programmeringsspråk som C # och Java följer en liknande syntax för att skapa ett objekt med en klass. Antag att klassnamnet är Student.

Student s1 = ny student ();

Denna s1 är objektet. Det "nya" sökordet används för att allokera minnet för egenskaperna. En klass har också en konstruktör för att initialisera egenskaper eller variabler.

Klassmedlemmar som egenskaper och metoder har åtkomstmodifierare. Åtkomstspecifikatorer beskriver tillgängligheten och synligheten för dessa medlemmar till andra klasser. Medlemmar i klassen kan ha åtkomstspecifikatorer som offentliga, privata och skyddade. Offentliga medlemmar är tillgängliga i andra klasser. Privata medlemmar är endast tillgängliga för klassen. Skyddade medlemmar är tillgängliga inom klassen och relevanta underklasser.

Vad är gränssnitt?

Abstraktion är en pelare med Objektorienterad programmering. Det är att dölja detaljeringsinformationen och visa funktionaliteten för användaren. Abstraktion uppnås med abstrakta klasser och gränssnitt. En abstrakt metod har inget genomförande. En klass som innehåller minst en abstrakt metod kallas en abstrakt klass.

När det finns två abstrakta klasser bör de metoder som deklarerats i dessa klasser genomföras. En ny klass används för att genomföra dessa metoder. Om båda klasserna hade samma metod kan det orsaka ett tvetydighetsproblem. Därför har programmeringsspråk som Java och C # ett gränssnitt.

Gränssnitt innehåller endast metoddeklarationen. Det finns ingen metod för genomförande. Dessutom kan gränssnitt inte användas för att skapa objekt. De används för att stödja flera arv och för att säkra koden.

Syntaxen för gränssnittet är som följer. Gränssnittet använder sökordet "gränssnitt".

gränssnitt gränssnittsnamn

skriv metod1 (parameter_list);

skriv metod2 (parameter_list);

Enligt ovan har gränssnitt endast deklarationen. Det finns ingen definition. Så, gränssnitt kan inte instansera objekt. Det ger bara en abstrakt bild av vad gränssnittet är. Metoder som deklareras i gränssnittet kan implementeras av en eller flera klasser. En klass använder sökordet "implementera" för att implementera ett gränssnitt. Se nedan exempel skrivet med Java.

Figur 01: Program med gränssnitt

Enligt ovanstående program är A och B gränssnitt. Gränssnitt A har en metoddeklaration som är summan (). Gränssnitt B har en metoddeklaration sub (). Klass C genomför både gränssnitt som är A och B. Därför definierar klass C både sum () och sub () metoder. Efter att ha skapat objektet av typ C är det möjligt att ringa båda metoderna summa () och sub ().

Metoder som deklareras i gränssnittet måste alltid vara offentliga eftersom implementeringsklasserna definierar dem. Ett gränssnitt kan också ärva från ett annat gränssnitt.

Vad är likheterna mellan klass och gränssnitt?

  • Båda är referenstyper.
  • Båda avser objektorienterad programmering.

Vad är skillnaden mellan klass och gränssnitt?

Klass vs Interface

En klass är en referenstyp som är en plan för att skapa ett objekt. Ett gränssnitt är en referenstyp som inte kan ordnas.
 Object Instantiation
En klass används för att instansera ett objekt. Ett gränssnitt kan inte instanseras eftersom metoderna inte kan göra några åtgärder.
Konstruktör
En klass innehåller en konstruktör för att initiera variablerna. Ett gränssnitt innehåller inte en konstruktör eftersom de knappast finns några variabler att initiera.
 Nyckelord
En klass använder sökordet "klass". Ett gränssnitt använder sökordet "gränssnitt".
Access Specifier
Medlemmar i klassen kan vara privata, offentliga och skyddade. Medlemmar av gränssnittet bör alltid vara offentliga eftersom implementeringsklasserna definierar dem.

Sammanfattning - Klass vs gränssnitt

Klasser och gränssnitt används ofta i objektorienterad programmering. Skillnaden mellan en klass och ett gränssnitt är att en klass är en referenstyp som är en plan för att instantiera ett objekt och gränssnittet är en referenstyp som inte kan användas för att instantiera ett objekt. En klass kan implementera många gränssnitt. Men det kan bara förlänga en superklass. I gränssnittet kan man erfara många gränssnitt men det kan inte vara en implementering. Båda har sin betydelse. Programmeraren kan använda dem enligt utvecklingsprogram.

Ladda ner PDF Class vs Interface

Du kan hämta PDF-versionen av den här artikeln och använda den för offlineändamål enligt citationsnotat. Var god ladda ner PDF-version här Skillnad mellan klass och gränssnitt

Referens:

1.tutorialspoint.com. "Java-objekt och klasser.", Punkten. Tillgänglig här 
2.navinreddy20. Gränssnittet i Java med ett exempel, Java By Navin Reddy, 11 december 2012. Tillgänglig här