Java 8 แนะนำวิธีการเริ่มต้นเพื่อให้ความสามารถในการขยายส่วนต่อประสานโดยไม่จำเป็นต้องแก้ไขการใช้งานที่มีอยู่
ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเรียกใช้การเริ่มต้นของวิธีการอย่างชัดเจนเมื่อวิธีการนั้นถูกเขียนทับหรือไม่พร้อมใช้งานเนื่องจากการใช้งานเริ่มต้นที่ขัดแย้งกันในอินเตอร์เฟสที่ต่างกัน
interface A {
default void foo() {
System.out.println("A.foo");
}
}
class B implements A {
@Override
public void foo() {
System.out.println("B.foo");
}
public void afoo() {
// how to invoke A.foo() here?
}
}
เมื่อพิจารณาจากโค้ดด้านบนคุณจะโทรA.foo()
จากวิธีการของคลาส B ได้อย่างไร