Mengapa antarmuka harus "dinyatakan" abstrak?
Ini bukan.
public abstract interface Interface {
\___.__/
|
'----> Neither this...
public void interfacing();
public abstract boolean interfacing(boolean really);
\___.__/
|
'----> nor this, are necessary.
}
Antarmuka dan metode mereka secara implisit abstract
dan menambahkan bahwa pengubah tidak ada bedanya.
Apakah ada aturan lain yang berlaku dengan antarmuka abstrak?
Tidak, aturan yang sama berlaku. Metode harus diterapkan oleh kelas pelaksana (konkret) apa pun.
Jika abstrak sudah usang, mengapa abstrak dimasukkan di Jawa? Apakah ada riwayat untuk antarmuka abstrak?
Pertanyaan menarik. Saya menggali edisi pertama JLS, dan bahkan di sana tertulis "Pengubah ini sudah usang dan tidak boleh digunakan dalam program Java baru" .
Oke, menggali lebih jauh ... Setelah mengenai banyak tautan yang rusak, saya berhasil menemukan salinan Spesifikasi Oak 0.2 asli (atau "manual"). Cukup menarik, harus saya katakan, dan hanya 38 halaman secara total! :-)
Di bawah Bagian 5, Antarmuka, ini memberikan contoh berikut:
public interface Storing {
void freezeDry(Stream s) = 0;
void reconstitute(Stream s) = 0;
}
Dan di margin katanya
Di masa mendatang, bagian "= 0" dari metode mendeklarasikan dalam antarmuka mungkin hilang.
Dengan asumsi =0
digantikan oleh abstract
kata kunci, saya menduga abstract
itu pada beberapa titik wajib untuk metode antarmuka!
Artikel terkait: Java: Antarmuka abstrak dan metode antarmuka abstrak