User Tools

Site Tools


linuxbog:java:java-interface-implementer
Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31
forrige Kapitel 12. Interfaces - grænseflader til objekter næste

12.2. Implementere et interface

Lad os nu definere en klasse, der implementerer Tegnbar-interfacet.

En klasse kan erklære, at den implementerer et interface , og så skal den definere alle metoderne i interfacet og give dem en metodekrop

Vi skal altså definere alle interfacets metoder sammen med programkoden, der beskriver hvad der skal ske, når metoderne kaldes.

import java.awt.*;

public class Stjerne //implements Tegnbar// {
  private int posX, posY;

  public void sætPosition(int x, int y) //// kræves af Tegnbar// {
    posX = x;
    posY = y;
  }

  public void tegn(Graphics g) //// kræves af Tegnbar// {
    g.drawString("*",posX,posY);
  }
}

Her har klassen Stjerne “udfyldt skallen” for Tegnbar ved at skrive “implements Tegnbar” og definere sætPosition()- og tegn()-metoderne (vi har også variabler til at huske x og y).

12.2.1. Variabler af type Tegnbar

Man kan erklære variabler af en interface-type. Disse kan referere til alle slags objekter, der implementerer interfacet. Herunder erklærer vi en variabel af type Tegnbar og sætter den til at referere til et Stjerne-objekt.

Tegnbar t;
    t = new Stjerne(); //// Lovligt, Stjerne implementerer Tegnbar//

Stjerne-objekter er også af type Tegnbar. Ligesom ved nedarvning siger man, at der er relationen Stjerne er-en Tegnbar, og at t er polymorf, da den kan referere til alle slags Tegnbare objekter.

Man kan ikke oprette objekter ud fra et interface (der bare er en “skal” og intet siger om, hvordan metoderne er implementerede så hvordan skulle objektet reagere, hvis metoderne blev kaldt?).

t = new Tegnbar(); //// FEJL! Tegnbar er ikke en klasse//

forrige hjem næste
Interfaces - grænseflader til objekter op Eksempler med interfacet Tegnbar
linuxbog/java/java-interface-implementer.txt · Last modified: by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.