เริ่มต้นด้วย Java 8 default
มีการนำวิธีการมาใช้ในอินเตอร์เฟส ได้อย่างมีประสิทธิภาพที่นี้หมายถึงว่าไม่ทุกวิธีการในการให้มีinterface
abstract
เริ่มต้นด้วย Java 9 (อาจ) private
วิธีการจะได้รับอนุญาต ซึ่งหมายความว่าไม่ทุกวิธีการในการให้มีinterface
public 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
สำหรับการประกาศวิธีการดังกล่าว " ทำไมคุณคาดหวังว่าสิ่งต่าง ๆ ควรเปลี่ยนแปลง?