Klasse og grænseflade i C#

En klasse er en specifikation af, hvordan man kan konstruere objekter fra den samme klasse . Det er en slags blueprint eller prototype, hvorfra de enkelte objekter oprettes. Vi kan sige, at en klasse er en skabelon, der beskriver de former for tilstand og adfærd, som objekter af dens type understøtter.

I objektorienteret programmering (OOP) kan vi sige, at en Toyota-bil er et eksempel på den klasse af objekter, der er kendt som Bil. En klasse er som et blueprint for en bil. Ved hjælp af dette blueprint kan du bygge så mange biler, som du vil. Hver bil, du bygger, er et objekt af klassen Bil. Hver bil har naturligvis også et nummer. Hvis du vil fortælle nogen, hvilken bil det er din bil, giver du dem nummeret til at identificere den. Dette nummer kaldes Objektets reference .

En grænseflade giver en kontrakt, der angiver, hvordan et Objekt skal oprettes, uden at bekymre sig om de nærmere detaljer om, hvordan de gør tingene. En grænseflade er en referencetype, og den indeholdt kun abstrakte medlemmer såsom hændelser, metoder, egenskaber osv. og den har ingen implementeringer for nogen af dens medlemmer.

Når en klasse implementerer en grænseflade er tvunget af compileren til at skrive de metoder og egenskaber, som grænsefladen har defineret. Det vil sige, at hvis du implementerer en grænseflade i din klasse, er du nødt til at deklarere alle grænsefladens hændelser, metoder og egenskaber i din klasse. En grænseflade kan kun have abstrakte metoder og konstanter, som altid implicit er offentlige, statiske og endelige.

En klasse har både en definition og en implementering, mens en grænseflade kun har en definition.

En klasse kan instantieres, men en grænseflade kan ikke instantieres Du kan oprette en instans af et objekt, der implementerer grænsefladen.

En klasse er en komplet enhed med medlemmer, metoder samt deres definition og implementering. En grænseflade er blot et sæt definitioner, som du skal implementere i din klasse, der arver denne grænseflade.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.