Interfaces in Java

Einführung in die Objektorientierte Programmierung in Java

Sani Yusuf

Lead Software Engineering Content Developer

Grenzen der Vererbung

  • Bei Vererbung werden alle Member übernommen
  • Du kannst Member nicht selektiv vererben

  // Car class   
  class Car {
    // Battery capacity is only applicable
    // to electric cars
    public int batteryCapacity;

    void drive() {

    }  
  }


  // Toyata class
  class Toyota extends Car {  
    void drive(){

    }           
  }


// Man class public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // All cars will inherit the "batteryCapacity" // even if they are not electric cars System.out.println( myToyota.batteryCapacity); // Not applicable } }
Einführung in die Objektorientierte Programmierung in Java

Interfaces erstellen

  • Interfaces erlauben es, Eigenschaften und Methoden selektiv zu übernehmen
  • Klassen binden Interfaces mit dem Schlüsselwort implements ein

  // ElectricCar Interface 
  interface ElectricCar {

  }





  // Tesla implementing the
  // ElectricCar interface
  class Tesla implements ElectricCar {

  }








Einführung in die Objektorientierte Programmierung in Java

Eigenschaften zu Interfaces hinzufügen

  • Eigenschaften verwenden konventionell UPPER_SNAKE_CASE
  • Wert muss sofort gesetzt werden und kann nicht geändert werden
  • Eigenschaften sind intern public static final

  interface ElectricCar {
    // Implictly public static final
    // Cannot be changed
    int BATTERY_CAPACITY = 310;

  }




Einführung in die Objektorientierte Programmierung in Java

Interface-Methoden hinzufügen

  • Interfaces enthalten typischerweise Methoden
  • Methoden sind standardmäßig abstract ohne Implementierung
  • Interfaces können konkrete Methoden mit Implementierung enthalten
  • Alle abstract-Methoden müssen in der Subklasse implementiert werden
  interface ElectricCar {
    // Implictly public static final
    // Cannot be changed
    int BATTERY_CAPACITY = 310;


// This is an abstract method by default void charge();
// This is a concrete method void autoPark() { }
}
class Tesla implements ElectricCar { // Must be implemented public void charge() { } }
Einführung in die Objektorientierte Programmierung in Java

Lass uns üben!

Einführung in die Objektorientierte Programmierung in Java

Preparing Video For Download...