Antarmuka di Java mirip dengan kelas, tetapi tubuh antarmuka hanya dapat menyertakan metode dan
final
bidang abstrak (konstanta).
Baru-baru ini, saya melihat sebuah pertanyaan, yang terlihat seperti ini
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Menurut definisi antarmuka, hanya metode abstrak yang diperbolehkan. Mengapa memungkinkan saya untuk mengkompilasi kode di atas? Apa default
kata kuncinya?
Di sisi lain, ketika saya mencoba menulis kode di bawah ini, maka dikatakan modifier default not allowed here
default class MyClass{
}
dari pada
class MyClass {
}
Adakah yang bisa memberi tahu saya tujuan dari default
kata kunci tersebut? Apakah hanya diperbolehkan di dalam antarmuka? Apa bedanya dengan default
(tanpa pengubah akses)?