Dimulai dengan Java 8, default
metode diperkenalkan ke antarmuka. Secara efektif, ini berarti bahwa tidak semua metode dalam suatu interface
are abstract
.
Dimulai dengan Java 9 (mungkin), private
metode akan diizinkan. Ini berarti bahwa tidak semua metode di dalam interface
adalah public abstract
.
Pertanyaan "Haruskah metode dalam antarmuka Java dideklarasikan dengan atau tanpa public
pengubah akses?" ditanya di Stack Overflow di /programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m
Di sana, sebagian besar jawaban berpendapat bahwa public abstract
tidak boleh digunakan karena tidak ada metode dalam interface
dapat apa pun selain public abstract
. Tidak lagi demikian.
Jadi, mengingat fitur antarmuka baru ini, haruskah public abstract
kata kunci digunakan dalam deklarasi metode antarmuka Java?
Dalam lingkungan spesifik saya, kami akan memiliki orang-orang yang berpengalaman insinyur perangkat lunak, tetapi tidak berpengalaman di Jawa, membaca kode Java dari waktu ke waktu. Saya merasa bahwa meninggalkan public abstract
kata kunci sekarang akan menciptakan titik kebingungan tambahan bagi mereka yang tidak terbiasa dengan sejarah tentang bagaimana antarmuka memiliki aturan yang berbeda untuk menggunakan kata kunci ini.
abstract
menjadi semakin berbelit-belit. Di Java 9, kalimat yang sama mungkin, "Metode antarmuka yang tidak memiliki default
pengubah atau static
pengubah atau private
pengubah secara abstrak ..." Selain itu, argumen tambahan untuk tidak secara eksplisit menggunakan kata kunci, yaitu, bahwa semua metode antarmuka public abstract
, sekarang diperdebatkan.
stream
untuk java.util.Collection
, atau Map.getOrDefault()
. Alternatifnya adalah membuat sub-antarmuka baru, dan membuat semua orang downcast, seperti Graphics2D, dan tidak ada yang menikmatinya!
default
pengubah ataustatic
pengubah secara implisitabstract
... Itu diizinkan, tetapi berkecil hati karena masalah gaya, untuk menentukan secara berlebihanabstract
pengubah untuk deklarasi metode seperti itu. " Mengapa Anda berharap bahwa segala sesuatu harus berubah?