Hvad er interface i Java med eksempel

Indholdsfortegnelse:

Anonim

Hvad er interface i Java?

En grænseflade i Java- programmering defineres som en abstrakt type, der bruges til at specificere en klasses opførsel. En Java-grænseflade indeholder statiske konstanter og abstrakte metoder. En klasse kan implementere flere grænseflader. I Java erklæres grænseflader ved hjælp af grænseflade nøgleordet. Alle metoder i grænsefladen er implicit offentlige og abstrakte.

Syntaks til deklarerende grænseflade

interface {//methods}

For at bruge en grænseflade i din klasse skal du tilføje nøgleordet "implementerer" efter dit klassenavn efterfulgt af grænsefladenavnet.

Eksempel på implementeringsgrænseflade

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klik her, hvis videoen ikke er tilgængelig

Hvorfor kræves et interface?

Lad os se et eksempel for at forstå begrebet Java Interface bedre. Klassen "Media Player" har to underklasser: CD-afspiller og DVD-afspiller. Hver har sin unikke implementeringsmetode til at afspille musik.

En anden klasse "Combo-drev" arver både CD og DVD (se billedet nedenfor). Hvilken afspilningsmetode skal den arve? Dette kan forårsage alvorlige designproblemer. Og derfor tillader Java ikke flere arv.

Lad os nu tage et andet eksempel på hund.

Antag at du har et krav, hvor klasse "hund" arver klasse "dyr" og "Kæledyr" (se billedet nedenfor). Men du kan ikke udvide to klasser i Java. Så hvad ville du gøre? Løsningen er Interface.

Regelbogen for interface siger,

  • En grænseflade er 100% abstrakt klasse og har kun abstrakte metoder.
  • Klassen kan implementere et hvilket som helst antal grænseflader.

Class Dog kan udvides til klasse "Animal" og implementere interface som "Pet".

Java Interface Eksempel:

Trin 1) Kopier følgende kode til en editor.

interface Pet {offentlig ugyldighedstest ();}klasse Hundredskaber Pet {offentlig ugyldighedstest () {System.out.println ("Implementeret interface-metode");}offentlig statisk ugyldig hoved (String args []) {Kæledyr p = ny hund ();p.test ();}}

Trin 2) Gem, kompilér og kør koden. Overhold output.

Forskel mellem klasse og interface

Klasse Interface
I klassen kan du starte en variabel og oprette et objekt. I en grænseflade kan du ikke instantiere variabler og oprette et objekt.
Klassen kan indeholde konkrete (med implementering) metoder Interfacet kan ikke indeholde konkrete (med implementering) metoder

Adgangsspecifikatorerne, der bruges med klasser, er private, beskyttede og offentlige.

I grænsefladen bruges kun en specifikator - Offentlig.

Hvornår skal jeg bruge interface og abstrakt klasse?

  • Brug en abstrakt klasse, når en skabelon skal defineres for en gruppe underklasser
  • Brug en grænseflade, når en rolle skal defineres for andre klasser, uanset arvstræet for disse klasser

Skal kende fakta om interface

  • En Java-klasse kan implementere flere Java-grænseflader. Det er nødvendigt, at klassen skal implementere alle de metoder, der er angivet i grænsefladerne.
  • Klassen skal tilsidesætte alle de abstrakte metoder, der er angivet i grænsefladen
  • Interface giver mulighed for at sende en besked til et objekt uden at angive, hvilke klasser det tilhører.
  • Klassen skal levere funktionalitet til de metoder, der er angivet i grænsefladen.
  • Alle metoder i en grænseflade er implicit offentlige og abstrakte
  • En grænseflade kan ikke instantieres
  • En interface-reference kan pege på objekter fra dens implementeringsklasser
  • En grænseflade kan strække sig fra en eller flere grænseflader. Klassen kan kun udvide en klasse, men implementere et vilkårligt antal grænseflader
  • En grænseflade kan ikke implementere en anden grænseflade. Det er nødvendigt at udvide en anden grænseflade.
  • En grænseflade, der er erklæret inde i en anden grænseflade, kaldes indlejret grænseflade
  • På erklæringstidspunktet skal interface-variablen initialiseres. Ellers kaster compileren en fejl.
  • Klassen kan ikke implementere to grænseflader i java, der har metoder med samme navn, men forskellige returtype.

Resume :

  • Klassen, der implementerer grænsefladen, skal levere funktionalitet til de metoder, der er angivet i grænsefladen
  • Alle metoder i en grænseflade er implicit offentlige og abstrakte
  • En grænseflade kan ikke instantieres
  • En interface-reference kan pege på objekter fra dens implementeringsklasser
  • En grænseflade kan strække sig fra en eller flere grænseflader. En klasse kan kun udvide en klasse, men implementere et vilkårligt antal grænseflader