Skip to main content

Interface

📌 Definisi Interface

Interface adalah blueprint dalam Java yang digunakan untuk mendefinisikan kontrak (contract) yang harus diimplementasikan oleh class.

Interface berisi:

  • Method abstract (secara default)
  • Konstanta (public static final)

Tujuan:

  • Mendukung abstraction
  • Mendukung multiple inheritance
  • Membuat kode lebih fleksibel

🔑 Keyword implements

Keyword implements digunakan untuk mengimplementasikan interface pada class.

Contoh:

interface Kendaraan {
void jalan();
}

class Mobil implements Kendaraan {
public void jalan() {
System.out.println("Mobil berjalan");
}
}

public class Main {
public static void main(String[] args) {
Mobil m = new Mobil();
m.jalan();
}
}

📌 Output:

Mobil berjalan

🔁 Multiple Inheritance dengan Interface

Java tidak mendukung multiple inheritance pada class, tetapi mendukung melalui interface.

Contoh:

interface A {
void methodA();
}

interface B {
void methodB();
}

class C implements A, B {
public void methodA() {
System.out.println("Method A");
}

public void methodB() {
System.out.println("Method B");
}
}

public class Main {
public static void main(String[] args) {
C obj = new C();
obj.methodA();
obj.methodB();
}
}

📌 Output:

Method A
Method B

⚙️ Default Method dan Static Method

Sejak Java 8, interface dapat memiliki method dengan implementasi.

🔹 Default Method

interface Kendaraan {
default void info() {
System.out.println("Ini kendaraan");
}
}

class Mobil implements Kendaraan {}

public class Main {
public static void main(String[] args) {
Mobil m = new Mobil();
m.info();
}
}

📌 Output:

Ini kendaraan

🔹 Static Method

interface Kendaraan {
static void kategori() {
System.out.println("Transportasi");
}
}

public class Main {
public static void main(String[] args) {
Kendaraan.kategori();
}
}

📌 Output:

Transportasi

⚡ Functional Interface (Java 8+)

Functional Interface adalah interface yang hanya memiliki satu method abstract.

Digunakan untuk:

  • Lambda expression
  • Functional programming

Contoh:

@FunctionalInterface
interface Operasi {
int hitung(int a, int b);
}

public class Main {
public static void main(String[] args) {
Operasi tambah = (a, b) -> a + b;
System.out.println(tambah.hitung(5, 3));
}
}

📌 Output:

8

🎯 Penutup

Interface adalah komponen penting dalam Java OOP yang memungkinkan pembuatan sistem yang fleksibel, modular, dan scalable.