Welcome to Our Website

Java – Grænseflader

Reklamer

En interface er en reference type i Java. Det ligner klassen. Det er en samling af abstrakte metoder. En klasse implementerer en grænseflade og derved arver de abstrakte metoder til grænsefladen.

sammen med abstrakte metoder kan en grænseflade også indeholde konstanter, standardmetoder, statiske metoder og indlejrede typer. Metodeorganer findes kun for standardmetoder og statiske metoder.,

at skrive en grænseflade svarer til at skrive en klasse. Men en klasse beskriver egenskaber og adfærd af et objekt. Og en grænseflade indeholder adfærd, som en klasse implementerer.

medmindre klassen, der implementerer grænsefladen, er abstrakt, skal alle metoder til grænsefladen defineres i klassen.

en grænseflade ligner en klasse på følgende måder −

  • en grænseflade kan indeholde et vilkårligt antal metoder.

  • en grænseflade er skrevet i en fil med en .java-udvidelse, med navnet på den grænseflade, der matcher navnet på filen.,

  • byte-koden for en grænseflade vises i a .klasse fil.

  • grænseflader vises i pakker, og deres tilsvarende bytekodefil skal være i en mappestruktur, der matcher pakkenavnet.

en grænseflade er imidlertid forskellig fra en klasse på flere måder, herunder −

  • Du kan ikke instantiere en grænseflade.

  • en grænseflade indeholder ingen konstruktører.

  • alle metoderne i en grænseflade er abstrakte.

  • en grænseflade kan ikke indeholde forekomstfelter., De eneste felter, der kan vises i en grænseflade, skal erklæres både statiske og endelige.

  • en grænseflade forlænges ikke af en klasse; den implementeres af en klasse.

  • en grænseflade kan udvide flere grænseflader.

deklarering af grænseflader

grænsefladenøgleordet bruges til at deklarere en grænseflade. Her er et simpelt eksempel til at erklære et interface, −

Eksempel

Følgende er et eksempel på et interface, −

Grænseflader har følgende egenskaber −

  • En interface er implicit abstrakt., Du behøver ikke at bruge det abstrakte søgeord, mens du erklærer en grænseflade.

  • hver metode i en grænseflade er også implicit abstrakt, så det abstrakte søgeord er ikke nødvendigt.

  • metoder i en grænseflade er implicit offentlige.

Eksempel

/* File name : Animal.java */interface Animal { public void eat(); public void travel();}

Gennemførelse Grænseflader

Når en klasse implementerer et interface, du kan tænke på den klasse, som at underskrive en kontrakt om at udføre specifikke funktioner i grænsefladen. Hvis en klasse ikke udfører al adfærd i grænsefladen, skal klassen erklære sig selv som abstrakt.,

en klasse bruger implementeringssøgeordet til at implementere en grænseflade. Implementeringsnøgleordet vises i klassedeklarationen efter den udvidede del af erklæringen.

Eksempel

Dette vil give følgende resultat −

Lyd

Mammal eatsMammal travels

Når tvingende metoder, der er defineret i grænseflader, der er flere regler, der skal følges −

  • Tjekket undtagelser bør ikke være angivet på gennemførelsen andre metoder end dem, der er angivet af interface metode eller underklasser af dem, der er anmeldt af interface metode.,

  • underskriften af grænseflademetoden og den samme returtype eller undertype bør opretholdes, når metoderne tilsidesættes.

  • en implementeringsklasse i sig selv kan være abstrakt, og i så fald behøver grænseflademetoder ikke implementeres.

Når implementeringsgrænseflader er der flere regler −

  • en klasse kan implementere mere end en grænseflade ad gangen.

  • en klasse kan kun udvide en klasse, men implementere mange grænseflader.

  • en grænseflade kan udvide en anden grænseflade, på samme måde som en klasse kan udvide en anden klasse.,

udvidende grænseflader

en grænseflade kan udvide en anden grænseflade på samme måde som en klasse kan udvide en anden klasse. Den udvider søgeord bruges til at udvide en grænseflade, og barnet interface arver metoderne til den overordnede grænseflade.

følgende sportsinterface udvides med Hockey-og Fodboldgrænseflader.

eksempel

Hockeygrænsefladen har fire metoder, men den arver to fra sport; således skal en klasse, der implementerer Hockey, implementere alle seks metoder., Tilsvarende skal en klasse, der implementerer fodbold, definere de tre metoder fra fodbold og de to metoder fra Sport.

udvidelse af flere grænseflader

en Java-klasse kan kun udvide en overordnet klasse. Flere arv er ikke tilladt. Grænseflader er dog ikke klasser, og en grænseflade kan udvide mere end en overordnet grænseflade.

den udvider søgeord bruges oncen gang, og de overordnede grænseflader er erklæret i en kommasepareret liste.,

For eksempel, hvis Hockey interface udvidet både Sport og Event, det ville blive erklæret som −

Eksempel

public interface Hockey extends Sports, Event

Tagging Grænseflader

Den mest almindelige brug af en forlængelse af grænseflader opstår, når forældrene interface indeholder ikke nogen metoder. For eksempel MouseListener-grænsefladen i java.a .t.begivenhed pakke udvidet java.util.EventListener, som er defineret som-

eksempel

package java.util;public interface EventListener{}

en grænseflade uden metoder i den betegnes som en tagging interface., Der er to grundlæggende designformål med tagging −grænseflader −

opretter en fælles forælder-som med EventListener-grænsefladen, der udvides med snesevis af andre grænseflader i Java API, kan du bruge en tagging-grænseflade til at oprette en fælles forælder blandt en gruppe grænseflader. For eksempel, når en grænseflade udvider EventListener, JVM ved, at denne særlige grænseflade vil blive brugt i en begivenhed delegation scenario.

tilføjer en datatype til en klasse − denne situation er, hvor udtrykket, tagging kommer fra., En klasse, der implementerer en kodningsgrænseflade, behøver ikke at definere nogen metoder (da grænsefladen ikke har nogen), men klassen bliver en Grænsefladetype gennem polymorfisme.

Reklamer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *