Interfaces in Java

Introductie tot objectgeoriënteerd programmeren in Java

Sani Yusuf

Lead Software Engineering Content Developer

Beperkingen van overerving

  • Bij overerving worden alle members overgenomen
  • Je kunt niet selectief members overerven

  // 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); // Niet van toepassing } }
Introductie tot objectgeoriënteerd programmeren in Java

Interfaces maken

  • Interfaces laten je eigenschappen en methoden selectief overnemen
  • Klassen gebruiken interfaces met het sleutelwoord implements

  // ElectricCar Interface 
  interface ElectricCar {

  }





  // Tesla die de
  // ElectricCar-interface implementeert
  class Tesla implements ElectricCar {

  }








Introductie tot objectgeoriënteerd programmeren in Java

Eigenschappen toevoegen aan interfaces

  • Eigenschappen gebruiken conventioneel UPPER_SNAKE_CASE
  • Waarde moet direct gezet worden en kan niet gewijzigd worden
  • Eigenschappen zijn onder water public static final

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

  }




Introductie tot objectgeoriënteerd programmeren in Java

Methoden aan een interface toevoegen

  • Interfaces bevatten meestal methoden
  • Methoden zijn standaard abstract zonder implementatie
  • Interfaces mogen ook concrete methoden hebben met implementatie
  • Alle abstract-methoden moeten in de subklasse worden geïmplementeerd
  interface ElectricCar {
    // Implictly public static final
    // Cannot be changed
    int BATTERY_CAPACITY = 310;


// Dit is standaard een abstracte methode void charge();
// Dit is een concrete methode void autoPark() { }
}
class Tesla implements ElectricCar { // Moet worden geïmplementeerd public void charge() { } }
Introductie tot objectgeoriënteerd programmeren in Java

Laten we oefenen!

Introductie tot objectgeoriënteerd programmeren in Java

Preparing Video For Download...