Hva er et grensesnitt i Java?

February 25  by Eliza

Et grensesnitt i Java er lik en klasse, men kroppen av et grensesnitt kan inkludere bare abstrakte metoder og siste feltene (konstanter). En klasse implementerer et grensesnitt ved å gi kode for hver metode erklært av grensesnittet.

Her er en grunnleggende grensesnitt som definerer en enkelt metode, oppkalt Spillbar, som inkluderer en enkel metode som heter spill:

felles grensesnitt Spillbar
{
ugyldig play ();
}

Dette grensesnittet erklærer at alle klasser som implementerer Spillbar grensesnittet må gi en implementering for en metode som heter spill som aksepterer ingen parametere og returnerer ikke en verdi.

Legg merke til at navnet på grensesnittet (Spillbar) er et adjektiv. De fleste grensesnitt er navngitt med adjektiver snarere enn substantiver fordi de beskriver noen ekstra kapasitet eller kvalitet av klassene som implementerer grensesnittet. Dermed klasser som implementerer Spillbar grensesnitt representere objekter som kan spilles.

I tilfelle du ikke har vært på engelsk klasse på en stund, et adjektiv er et ord som modifiserer et substantiv. Du kan konvertere mange verb til adjektiver ved å legge til - i stand til slutten av ordet - spillbar, lesbar, kjørbar, og Stoppable, for eksempel. Denne typen adjektiv er ofte brukt for grensesnittnavn.

Alle metodene i et grensesnitt antas offentlig og abstrakt. Å implementere et grensesnitt, må en klasse gjøre to ting:

  • Det må angi et redskaper klausul om sin klasse erklæring.
  • Det må gi en implementering for hver metode erklært av grensesnittet.

Her er en klasse som implementerer Spillbar grensesnitt:

public class TicTacToe implementerer Spillbar
{
// Flere felt og metoder gå her
public void play ()
{
// Kode som spiller spillet går her
}
// Flere felt og metoder gå her
}

Her erklæringen for TicTacToe klassen angir redskaper Spillbar. Da hoveddelen av klassen omfatter en gjennomføring av trekk-metoden.

En klasse kan implementere mer enn ett grensesnitt:

public class HeartsGame implementerer Spillbar, cardgame
{
// Må implementere metoder for Spillbar
// og cardgame grensesnitt
}

Her implementerer HeartsGame klasse to grensesnitt: Spillbare og cardgame.

Et grensesnitt er en slags form, akkurat som en klasse. Som et resultat, kan du bruke et grensesnitt som type for en variabel, parameter, eller metode returverdi.

Tenk på dette kodebit:

Spillbare spill = getGame ();
game.play ();

Her antar man at getGame metoden returnerer et objekt som implementerer Spillbar grensesnitt. Dette objektet er tildelt en variabel av typen Spillbar i den første setningen. Da den andre setningen kaller objektets play-metoden.

Alternativt kan du ringe konstruktøren av en klasse som implementerer Spillbar grensesnitt. For eksempel anta at en klasse som heter HeartsGame implementerer Spillbar grensesnitt. Deretter kan du bruke følgende kode:

Spillbare spill = ny HeartsGame ();