Forskel mellem klasse og interface

Nøgleforskel - klasse vs interface
 

Objektorienteret programmering (OOP) er et almindeligt paradigme inden for softwareudvikling. Det hjælper med at bringe den virkelige verden scenarier til programmering ved hjælp af klasser og objekter. En klasse er en plan for at oprette et objekt. Programmereren kan oprette en klasse med egenskaber og metoder. En studerende og en lærer er genstande. Oprettelse af et objekt kaldes instantiering. OOP bruger også grænseflader. Grænseflader og klasse kan virke ens, men de har en forskel. Denne artikel diskuterer forskellen mellem en klasse og en grænseflade. Det vigtigste forskel mellem en klasse og en grænseflade er det en klasse er en referencetype, der er en plan for at instantisere et objekt, mens interface er en referencetype, der ikke kan bruges til at instantisere et objekt.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er klasse
3. Hvad er interface
4. Ligheder mellem klasse og interface
5. Sammenligning side ved side - Klasse vs grænseflade i tabelform
6. Resume

Hvad er klasse?

I OOP betragtes alt som et objekt. Det er ikke muligt at oprette et objekt uden en klasse. En klasse er en plan for at oprette et objekt. Når man bygger et hus, tegner arkitekten planen. Planen ligner en klasse. Huset ligner genstanden. Klassen er planen om at opbygge et objekt. Et objekt er det, der oprettes ved hjælp af klassen.

Klassen indeholder egenskaber og metoder. En studerende kan have egenskaber som navn, karakter, indeksnummer. En studerende kan have metoder som læse, gå, studere. Der oprettes en klasse med de nødvendige egenskaber og metoder.

Syntaks til oprettelse af en klasse i mange programmeringssprog er som følger. Det oprettes ved hjælp af nøgleordsklassen.

klasse klassens navn

// ejendomme

//metoder

Programmeringssprog som C # og Java følger en lignende syntaks for at oprette et objekt ved hjælp af en klasse. Antag, at klassens navn er Student.

Student s1 = ny Student ();

Denne s1 er objektet. Det "nye" nøgleord bruges til at allokere hukommelse til egenskaberne. En klasse har også en konstruktør til at initialisere egenskaber eller variabler.

Klassemedlemmer såsom egenskaber og metoder har adgangsmodifikatorer. Adgangsspecifikatorer beskriver medlemmers tilgængelighed og synlighed til andre klasser. Medlemmer af klassen kan have adgangsspecifikationer som offentlige, private og beskyttede. Offentlige medlemmer er tilgængelige for andre klasser. Private medlemmer er kun tilgængelige for klassen. Beskyttede medlemmer er tilgængelige inden for klassen og relevante underklasser.

Hvad er interface?

Abstraktion er en søjle i objektorienteret programmering. Det er at skjule implementeringsdetaljerne og vise funktionaliteten for brugeren. Abstraktion opnås ved hjælp af abstrakte klasser og grænseflader. En abstrakt metode har ikke en implementering. En klasse, der indeholder mindst en abstrakt metode kaldes en abstrakt klasse.

Når der er to abstrakte klasser, skal de metoder, der er erklæret i disse klasser, implementeres. En ny klasse bruges til at implementere disse metoder. Hvis begge klasser havde den samme metode, kan det forårsage et tvetydighedsproblem. Derfor har programmeringssprog som Java og C # en grænseflade.

Grænseflader indeholder kun metodedeklarationen. Der er ingen metode til implementering. Grænseflader kan heller ikke bruges til at oprette objekter. De bruges til at understøtte flere arv og til at sikre koden.

Syntaks for interface er som følger. Interface bruger nøgleordet "interface".

interface interface_navn

type method1 (parameter_list);

type method2 (parameter_list);

I henhold til ovenstående har grænseflader kun erklæringen. Der er ingen definition. Så grænseflader kan ikke genstarte objekter. Det giver kun et abstrakt billede af, hvad grænsefladen er. Metoder, der er erklæret i grænsefladen, kan implementeres af en eller mange klasser. En klasse bruger nøgleordet "implementere" til at implementere en grænseflade. Se nedenfor eksemplet skrevet med Java.

Figur 01: Program ved hjælp af grænseflader

I henhold til ovenstående program er A og B grænseflader. Interface A har en metodedeklaration, som er summen (). Interface B har en metodedeklarationssub (). Klasse C implementerer begge grænseflader, der er A og B. Derfor definerer klasse C både sum () og sub () metoder. Efter oprettelse af objektet af type C er det muligt at kalde begge metoder sum () og sub ().

Metoder, der er angivet i grænsefladen, skal altid være offentlige, fordi de implementerende klasser definerer dem. En grænseflade kan også arve fra en anden grænseflade.

Hvad er lighederne mellem klasse og interface?

  • Begge er referencetyper.
  • Begge vedrører objektorienteret programmering.

Hvad er forskellen mellem klasse og interface?

Klasse vs interface

En klasse er en referencetype, der er en plan for at oprette et objekt. En grænseflade er en referencetype, der ikke kan instantieres.
 Objektinstantiation
En klasse bruges til at instantisere et objekt. En grænseflade kan ikke startes, fordi metoderne ikke er i stand til at udføre nogen handling.
Constructor
En klasse indeholder en konstruktør til at initialisere variablerne. En grænseflade indeholder ikke en konstruktør, fordi de næppe er variabler at initialisere.
 Søgeord
En klasse bruger nøgleordet "klasse". En grænseflade bruger nøgleordet “interface”.
Adgangsspecifikation
Medlemmer af klassen kan være private, offentlige og beskyttede. Medlemmer af grænsefladen skal altid være offentlige, fordi de implementerende klasser definerer dem.

Resume - klasse vs interface

Klasser og grænseflader er vidt brugt i objektorienteret programmering. Forskellen mellem en klasse og en grænseflade er, at en klasse er en referencetype, som er en plan for at instantisere et objekt, og interface er en referencetype, som ikke kan bruges til at instantisere et objekt. En klasse kan implementere mange grænseflader. Men det kan kun udvide en superklasse. I interface kan arve mange grænseflader, men der kan ikke være en implementering. Begge har deres betydning. Programmereren kan bruge dem i henhold til udvikling af software.

Download PDF Class vs Interface

Du kan downloade PDF-version af denne artikel og bruge den til offline-formål som pr. Citatnotat. Download PDF-version her Forskel mellem klasse og interface

Reference:

1.tutorialspoint.com. “Java-objekt og klasser.”, Punktet. Tilgængelig her 
2.navinreddy20. Grænsefladen i java med et eksempel, Java Af Navin Reddy, 11. december 2012. Tilgængelig her