Antarmuka di Java

Pengantar Pemrograman Berorientasi Objek di Java

Sani Yusuf

Lead Software Engineering Content Developer

Keterbatasan pewarisan

  • Dengan pewarisan, semua member diwariskan
  • Anda tidak bisa mewariskan sebagian member saja

  // Kelas Car   
  class Car {
    // Kapasitas baterai hanya berlaku
    // untuk mobil listrik
    public int batteryCapacity;

    void drive() {

    }  
  }


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

    }           
  }


// Kelas Main public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // Semua mobil akan mewarisi "batteryCapacity" // meskipun bukan mobil listrik System.out.println( myToyota.batteryCapacity); // Tidak relevan } }
Pengantar Pemrograman Berorientasi Objek di Java

Membuat antarmuka

  • Antarmuka memungkinkan mewarisi properti dan metode secara selektif
  • Kelas menggunakan antarmuka dengan kata kunci implements

  // Antarmuka ElectricCar 
  interface ElectricCar {

  }





  // Tesla mengimplementasikan
  // antarmuka ElectricCar
  class Tesla implements ElectricCar {

  }








Pengantar Pemrograman Berorientasi Objek di Java

Menambahkan properti ke antarmuka

  • Properti lazimnya UPPER_SNAKE_CASE
  • Nilai harus ditetapkan segera dan tidak dapat diubah
  • Properti bersifat public static final di balik layar

  interface ElectricCar {
    // Secara implisit public static final
    // Tidak dapat diubah
    int BATTERY_CAPACITY = 310;

  }




Pengantar Pemrograman Berorientasi Objek di Java

Menambahkan metode antarmuka

  • Antarmuka biasanya berisi metode
  • Metode bersifat abstract secara default tanpa implementasi kode
  • Antarmuka dapat memiliki metode konkret dengan implementasi kode
  • Semua metode abstract harus diimplementasikan di subclass
  interface ElectricCar {
    // Secara implisit public static final
    // Tidak dapat diubah
    int BATTERY_CAPACITY = 310;


// Ini adalah metode abstract secara default void charge();
// Ini adalah metode konkret void autoPark() { }
}
class Tesla implements ElectricCar { // Wajib diimplementasikan public void charge() { } }
Pengantar Pemrograman Berorientasi Objek di Java

Ayo berlatih!

Pengantar Pemrograman Berorientasi Objek di Java

Preparing Video For Download...