Dimulai dengan Java 8, defaultmetode diperkenalkan ke antarmuka. Secara efektif, ini berarti bahwa tidak semua metode dalam suatu interfaceare abstract.
Dimulai dengan Java 9 (mungkin), privatemetode akan diizinkan. Ini berarti bahwa tidak semua metode di dalam interfaceadalah public abstract.
Pertanyaan "Haruskah metode dalam antarmuka Java dideklarasikan dengan atau tanpa publicpengubah 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 abstracttidak boleh digunakan karena tidak ada metode dalam interfacedapat apa pun selain public abstract. Tidak lagi demikian.
Jadi, mengingat fitur antarmuka baru ini, haruskah public abstractkata 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 abstractkata 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.
abstractmenjadi semakin berbelit-belit. Di Java 9, kalimat yang sama mungkin, "Metode antarmuka yang tidak memiliki defaultpengubah atau staticpengubah atau privatepengubah secara abstrak ..." Selain itu, argumen tambahan untuk tidak secara eksplisit menggunakan kata kunci, yaitu, bahwa semua metode antarmuka public abstract, sekarang diperdebatkan.
streamuntuk java.util.Collection, atau Map.getOrDefault(). Alternatifnya adalah membuat sub-antarmuka baru, dan membuat semua orang downcast, seperti Graphics2D, dan tidak ada yang menikmatinya!
defaultpengubah ataustaticpengubah secara implisitabstract... Itu diizinkan, tetapi berkecil hati karena masalah gaya, untuk menentukan secara berlebihanabstractpengubah untuk deklarasi metode seperti itu. " Mengapa Anda berharap bahwa segala sesuatu harus berubah?