Java -koppelvlak


Koppelvlakke

Nog 'n manier om abstraksie in Java te bereik, is met koppelvlakke.

An interfaceis 'n heeltemal " abstrakte klas " wat gebruik word om verwante metodes met leë liggame te groepeer:

Voorbeeld

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

Om toegang tot die koppelvlakmetodes te verkry, moet die koppelvlak "geïmplementeer" word (soos oorgeërf) deur 'n ander klas met die implements sleutelwoord (in plaas van extends). Die liggaam van die koppelvlakmetode word verskaf deur die "implementeer" klas:

Voorbeeld

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Notas oor koppelvlakke:

  • Soos abstrakte klasse , kan koppelvlakke nie gebruik word om voorwerpe te skep nie (in die voorbeeld hierbo is dit nie moontlik om 'n "Animal"-voorwerp in die MyMainClass te skep nie)
  • Koppelvlakmetodes het nie 'n liggaam nie - die liggaam word verskaf deur die "implementeer"-klas
  • By die implementering van 'n koppelvlak moet jy al sy metodes ignoreer
  • Koppelvlakmetodes is by verstek abstracten public
  • Interface-kenmerke is by verstek public, staticenfinal
  • 'n Koppelvlak kan nie 'n konstruktor bevat nie (aangesien dit nie gebruik kan word om voorwerpe te skep nie)

Waarom en wanneer om koppelvlakke te gebruik?

1) Om sekuriteit te bereik - versteek sekere besonderhede en wys slegs die belangrike besonderhede van 'n objek (koppelvlak).

2) Java ondersteun nie "meervoudige oorerwing" ('n klas kan slegs van een superklas erf). Dit kan egter met koppelvlakke bereik word, omdat die klas verskeie koppelvlakke kan implementeer . Let wel: Om veelvuldige koppelvlakke te implementeer, skei hulle met 'n komma (sien voorbeeld hieronder).


Veelvuldige koppelvlakke

Om veelvuldige koppelvlakke te implementeer, skei hulle met 'n komma:

Voorbeeld

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}