เริ่มต้นด้วย Java 8 defaultมีการนำวิธีการมาใช้ในอินเตอร์เฟส ได้อย่างมีประสิทธิภาพที่นี้หมายถึงว่าไม่ทุกวิธีการในการให้มีinterfaceabstract
เริ่มต้นด้วย Java 9 (อาจ) privateวิธีการจะได้รับอนุญาต ซึ่งหมายความว่าไม่ทุกวิธีการในการให้มีinterfacepublic abstract
คำถาม "ควรประกาศวิธีการในส่วนต่อประสาน Java โดยมีหรือไม่มีpublicตัวแก้ไขการเข้าถึงหรือไม่" ถูกถามที่ Stack Overflow ที่/programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m
คำตอบส่วนใหญ่แย้งว่าpublic abstractไม่ควรใช้เพราะไม่มีวิธีการใดที่interfaceสามารถเป็นอย่างอื่นpublic abstractได้ นี่ไม่ใช่กรณีอีกต่อไป
ดังนั้นด้วยคุณสมบัติใหม่ของอินเทอร์เฟซเหล่านี้ควรใช้public abstractคีย์เวิร์ดในการประกาศเมธอดของอินเตอร์เฟส Java หรือไม่?
ในสภาพแวดล้อมเฉพาะของฉันเราจะมีคนที่มีประสบการณ์วิศวกรซอฟต์แวร์ แต่ไม่เคยมีประสบการณ์ใน Java อ่านโค้ด Java เป็นครั้งคราว ฉันรู้สึกว่าการละทิ้งpublic abstractคำหลักจะสร้างจุดสับสนเพิ่มเติมสำหรับผู้ที่ไม่คุ้นเคยกับประวัติว่าอินเตอร์เฟสมีกฎแตกต่างกันสำหรับการใช้คำหลักเหล่านี้อย่างไร
abstractเพิ่มความซับซ้อนโดยปริยาย ใน Java 9 ประโยคเดียวกันว่าอาจจะมี "วิธีการอินเตอร์เฟซที่ขาดdefaultปรับปรุงหรือstaticปรับแต่งหรือprivateปรับแต่งเป็นนามธรรมโดยปริยาย ..." นอกจากนี้ข้อโต้แย้งเสริมไม่ชัดเจนใช้คำหลักคือว่าวิธีการอินเตอร์เฟซที่ทุกคนมีpublic abstract, ตอนนี้กำลังสงสัย
streamไปหรือjava.util.Collection Map.getOrDefault()ทางเลือกคือการสร้างอินเทอร์เฟซย่อยใหม่และทำให้ทุกคนตกต่ำเช่น Graphics2D และไม่มีใครสนุกเลย!
defaultตัวดัดแปลงหรือstaticตัวดัดแปลงนั้นโดยปริยายabstract... มันได้รับอนุญาต แต่ ท้อแท้เป็นเรื่องของสไตล์เพื่อระบุการเปลี่ยนแปลงซ้ำซ้อนabstractสำหรับการประกาศวิธีการดังกล่าว " ทำไมคุณคาดหวังว่าสิ่งต่าง ๆ ควรเปลี่ยนแปลง?