Forskellen mellem klasse og grænseflade

Indholdsfortegnelse:

Forskellen mellem klasse og grænseflade
Forskellen mellem klasse og grænseflade

Video: Forskellen mellem klasse og grænseflade

Video: Forskellen mellem klasse og grænseflade
Video: Difference between Class and Interface in java | Super Keyword | OOPs | Tutorial #43 2024, Juni
Anonim

Nøgleforskel – klasse vs grænseflade

Object-Oriented Programming (OOP) er et almindeligt paradigme inden for softwareudvikling. Det hjælper med at bringe virkelige scenarier til programmering ved hjælp af klasser og objekter. En klasse er en plan for at skabe et objekt. Programmøren kan oprette en klasse med egenskaber og metoder. En elev og lærer er objekter. Oprettelse af et objekt er kendt som instansiering. 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. Den vigtigste forskel mellem en klasse og en grænseflade er, at en klasse er en referencetype, der er en blåkopi til at instantiere et objekt, mens grænsefladen er en referencetype, der ikke kan bruges til at instansiere et objekt.

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 skabe et objekt. Når man bygger et hus, tegner arkitekten planen. Planen ligner en klasse. Huset ligner objektet. Klassen er planen for at bygge et objekt. Et objekt er det, der oprettes ved hjælp af klassen.

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

Syntaksen for at oprette en klasse i mange programmeringssprog er som følger. Det er oprettet ved hjælp af søgeordsklassen.

class class_name {

// ejendomme

//metoder

}

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

Student s1=ny elev ();

Denne s1 er objektet. Nøgleordet "nyt" 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. Adgangsspecifikationer beskriver disse medlemmers tilgængelighed og synlighed for andre klasser. Medlemmer af klassen kan have adgangsspecifikationer så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 grænseflade?

Abstraction er en søjle i objektorienteret programmering. Det er for at skjule implementeringsdetaljerne og for at 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 én abstrakt metode, kaldes en abstrakt klasse.

Når der er to abstrakte klasser, skal metoderne, 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 erklæringen om metoder. Der er ingen implementeringsmetode. Grænseflader kan heller ikke bruges til at oprette objekter. De bruges til at understøtte flere arv og til at sikre koden.

Syntaksen for Interface er som følger. Grænseflade brug søgeordet "interface".

interface interface_name{

type metode1(parameter_list);

type metode2(parameter_list);

}

Ifølge ovenstående har grænseflader kun erklæringen. Der er ingen definition. Så grænseflader kan ikke instansiere objekter. Det giver kun et abstrakt billede af, hvad grænsefladen er. Metoder erklæret i grænsefladen kan implementeres af en eller flere klasser. En klasse bruger nøgleordet "implementere" til at implementere en grænseflade. Se nedenstående eksempel skrevet med Java.

Forskellen mellem klasse og grænseflade
Forskellen mellem klasse og grænseflade
Forskellen mellem klasse og grænseflade
Forskellen mellem klasse og grænseflade

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

Ifølge ovenstående program er A og B grænseflader. Interface A har en metodeerklæring, som er sum(). Interface B har en metodeerklæring sub(). Klasse C implementerer begge grænseflader, som er A og B. Derfor definerer klasse C både sum() og sub() metoder. Efter at have oprettet objektet af type C, er det muligt at kalde begge metoder sum() og sub().

Metoder erklæret inde 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 grænseflade?

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

Hvad er forskellen mellem klasse og grænseflade?

Klasse vs Interface

En klasse er en referencetype, der er en plan for at skabe et objekt. En grænseflade er en referencetype, der ikke kan instansieres.
Objektforekomst
En klasse bruges til at instantiere et objekt. En grænseflade kan ikke instansieres, fordi metoderne ikke er i stand til at udføre nogen handling.
Konstruktør
En klasse indeholder en konstruktør til at initialisere variablerne. En grænseflade indeholder ikke en konstruktør, fordi de næsten ikke er nogen variable, der skal initialiseres.
Søgeord
En klasse bruger søgeordet "klasse". En grænseflade bruger søgeordet "interface".
Adgangsspecifikation
Medlemmer af klassen kan være private, offentlige og beskyttede. Medlemmer af grænsefladen bør altid være offentlige, fordi de implementerende klasser definerer dem.

Oversigt – Klasse vs grænseflade

Klasser og grænseflader er meget brugt i objektorienteret programmering. Forskellen mellem en klasse og en grænseflade er, at en klasse er en referencetype, som er en blåkopi til at instantiere et objekt, og interface er en referencetype, som ikke kan bruges til at instansiere et objekt. En klasse kan implementere mange grænseflader. Men det kan kun forlænge én superklasse. I grænseflade kan arve mange grænseflader, men der kan ikke være en implementering. Begge har deres betydning. Programmøren kan bruge dem i henhold til udvikling af software.

Download PDF-klassen vs grænseflade

Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem klasse og grænseflade

Anbefalede: