Hvad er grænsefladearv?

Interfacearv er en mekanisme i visse computersprog, hvor specifikke funktioner er arvet af en klasse, og derefter skal den bestemte klasse give implementeringer for disse funktioner for at være komplette. Grænseflader findes kun på visse objektorienterede programmeringssprog. De kan bruges til at efterligne flere arv, mens de faktisk ikke tillader en klasse at multiplicere arve, fordi der generelt ikke er nogen grænser for antallet af grænseflader, som en klasse kan arve fra. Ud over uimplementerede metoder kan grænseflader også omfatte offentlige konstanter.

I grænsefladearv betragtes objektet, der arver metodestubber og konstanter, som en type interfaceobjekt. Så hvis en klasse X arvet fra en grænseflade Y, ville ethvert tilfælde af klasse X også være et eksempel på klassen Y. Dette bliver mere kompliceret, når en klasses grænsefladearv involverer mere end en separat grænseflade. For hver ekstra grænseflade, der er arvet, den resulterendeKlasse kan legitimt bruges som et eksempel på hver. Hvis en klasse arvet fra ti forskellige grænseflader, kunne genstande i den klasse bruges som et eksempel på elleve forskellige objekter, inklusive sig selv.

En sådan kompleks arv er ikke ofte nødvendig. Interface arv bruges til at sikre, at en klasse har et specifikt sæt krævede adfærd, og disse opførsler gør det muligt for den at udføre en række funktioner, som den ellers ikke kunne gøre. Et almindeligt eksempel på dette er ActionListener -interface i Java, som kræver, at en klasse kun implementerer en bestemt metode. Succesfuld implementering af denne metode giver en bruger mulighed for at kontrollere knapper, menupunkter eller ethvert andet vinduesobjekt i klassen om ønsket. Interface arv er en relativt enkel måde at tilføje kompleks funktionalitet til en klasse uden at bekymre sig om mest komplicerede arvespørgsmål.

En af de største fordele ved USING -grænsefladearv er, at det gør det muligt at bruge specifikke objekter i en generisk forstand. Da en klasse, der implementerer en grænseflade, er et eksempel på denne grænseflade, kan den bruges ethvert sted, et eksempel på denne grænseflade er påkrævet. For eksempel, hvis klasse A implementerer klasse C, og klasse B også implementerer klasse C, hvis en metode tager som en parameter et eksempel på klasse C, ville enten en forekomst af klasse A eller en forekomst af klasse B være en acceptabel parameter at bruge. Grænseflader kan ikke instantieres på egen hånd, fordi de ikke er komplette, så der ville aldrig være et objekt, der var rent et eksempel på klasse C som en parameter.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?