AFAIK คลาสextends
แม่และคลาสimplements
อินเทอร์เฟซของฉัน implements SomeInterface
แต่ผมทำงานในสถานการณ์ที่ฉันไม่สามารถใช้ มันคือการประกาศประเภททั่วไป ตัวอย่างเช่น:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
ที่นี่ใช้implements
เป็นสิ่งต้องห้าม syntactically ฉันคิดก่อนว่าการใช้อินเทอร์เฟซภายใน <> นั้นเป็นสิ่งต้องห้าม แต่ไม่ใช่ มันเป็นไปได้ฉันมีเพียงแค่ใช้ แทนextends
implements
เป็นผลให้ฉัน "ขยาย" อินเทอร์เฟซ ตัวอย่างอื่นนี้ใช้งานได้:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
สำหรับฉันดูเหมือนว่าจะไม่สอดคล้องกันทางไวยากรณ์ แต่บางทีฉันไม่เข้าใจเรื่อง Java 6 ของ finesses บ้าง? มีสถานที่อื่นที่ฉันควรจะเพิ่มส่วนต่อประสานหรือไม่ อินเทอร์เฟซที่ฉันหมายถึงการขยายควรมีคุณสมบัติพิเศษหรือไม่?