nyckelskillnad – klass vs gränssnitt
Objektorienterad programmering (OOP) är ett vanligt paradigm inom mjukvaruutveckling. Det hjälper till att föra 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 elev och lärare är objekt. Att skapa ett objekt kallas instansiering. OOP använder också gränssnitt. Gränssnitt och klass kan verka lika, men de har en skillnad. Den här artikeln diskuterar skillnaden mellan en klass och ett gränssnitt. Den viktigaste skillnaden mellan en klass och ett gränssnitt är att en klass är en referenstyp som är en ritning för att instansiera ett objekt medan gränssnittet är en referenstyp som inte kan användas för att instansiera ett objekt.
Vad är klass?
I OOP betraktas allt som ett objekt. Det är inte möjligt att skapa ett objekt utan en klass. En klass är en ritning för att skapa ett objekt. När man bygger ett hus ritar arkitekten planen. Planen liknar en klass. Huset liknar objektet. Klassen är planen för att bygga ett objekt. Ett objekt är det som skapas med klassen.
Klassen innehåller egenskaperna och metoderna. En elev kan ha egenskaper som namn, betyg, indexnummer. En elev kan ha metoder som att läsa, gå, studera. En klass skapas med nödvändiga egenskaper och metoder.
Syntaxen för att skapa en klass i många programmeringsspråk är följande. Det skapas med nyckelordsklassen.
class class_name {
// egenskaper
//metoder
}
Programmeringsspråk som C och Java följer en liknande syntax för att skapa ett objekt med en klass. Antag att klassens namn är Student.
Student s1=ny student ();
Denna s1 är objektet. Nyckelordet "nya" används för att allokera minne för egenskaperna. En klass har också en konstruktor för att initiera egenskaper eller variabler.
Klassmedlemmar som egenskaper och metoder har åtkomstmodifierare. Åtkomstspecifikationer beskriver tillgängligheten och synligheten för dessa medlemmar för andra klasser. Medlemmar i klassen kan ha åtkomstspecifikationer som offentliga, privata och skyddade. Offentliga medlemmar är tillgängliga för andra klasser. Privata medlemmar är endast tillgängliga för klassen. Skyddade medlemmar är tillgängliga inom klassen och relevanta underklasser.
Vad är Interface?
Abstraction är en pelare i objektorienterad programmering. Det är för att dölja implementeringsdetaljerna och för att visa funktionaliteten för användaren. Abstraktion uppnås med hjälp av abstrakta klasser och gränssnitt. En abstrakt metod har ingen implementering. En klass som innehåller minst en abstrakt metod kallas en abstrakt klass.
När det finns två abstrakta klasser bör metoderna som deklareras i dessa klasser implementeras. En ny klass används för att implementera 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 deklaration av metoder. Det finns ingen metod för implementering. Gränssnitt kan inte heller 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 Interface är följande. Gränssnitt använd nyckelordet "gränssnitt".
interface interface_name{
typ metod1(parameterlista);
typ metod2(parameterlista);
}
Enligt ovan har gränssnitt endast deklarationen. Det finns ingen definition. Så, gränssnitt kan inte instansiera 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 nyckelordet "implementera" för att implementera ett gränssnitt. Se nedanstående exempel skrivet med Java.
Figur 01: Program med gränssnitt
Enligt programmet ovan är A och B gränssnitt. Gränssnitt A har en metoddeklaration som är summan(). Gränssnitt B har en metoddeklaration sub(). Klass C implementerar båda gränssnitten som är A och B. Klass C definierar därför både sum()- och sub()-metoder. Efter att ha skapat objektet av typ C är det möjligt att anropa båda metoderna sum() och sub().
Metoder som deklareras i gränssnittet måste alltid vara offentliga eftersom de implementerande klasserna definierar dem. Ett gränssnitt kan också ärva från ett annat gränssnitt.
Vilka ä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 kontra gränssnitt |
|
En klass är en referenstyp som är en ritning för att skapa ett objekt. | Ett gränssnitt är en referenstyp som inte kan instansieras. |
Objektinstans | |
En klass används för att instansiera ett objekt. | Ett gränssnitt kan inte instansieras eftersom metoderna inte kan utföra någon åtgärd. |
Constructor | |
En klass innehåller en konstruktor för att initiera variablerna. | Ett gränssnitt innehåller ingen konstruktor eftersom de knappast är några variabler att initiera. |
Sökord | |
En klass använder nyckelordet "klass". | Ett gränssnitt använder nyckelordet "gränssnitt". |
Åtkomstspecifikator | |
Medlemmar i klassen kan vara privata, offentliga och skyddade. | Medlemmar i gränssnittet bör alltid vara offentliga eftersom de implementerande klasserna definierar dem. |
Sammanfattning – Klass kontra 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 ritning för att instansiera ett objekt och gränssnitt är en referenstyp som inte kan användas för att instansiera ett objekt. En klass kan implementera många gränssnitt. Men det kan bara utöka en superklass. I gränssnitt kan ärva många gränssnitt men det kan inte finnas en implementering. Båda har sin betydelse. Programmeraren kan använda dem enligt utvecklingsmjukvaran.
Ladda ner PDF-klassen vs gränssnitt
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan klass och gränssnitt