在 Java 中,實現介面的類是否必須實現介面中的所有方法?
是的,除非該類宣告為抽象類,否則必須實現實現介面的類中的所有方法。
只有兩種選擇:
- 實現介面定義的每個方法。
- 將類宣告為抽象類,因此,在建立任何物件之前,必須對其進行子類化(並實現缺少的方法)。
唯一不需要實現介面中所有方法的情況是,如果其繼承樹中的任何類已經提供了具體的(即非抽象的)方法實現,那麼子類無需重新實現這些方法。子類甚至可以完全不實現介面,只要方法簽名匹配即可。
示例
interface MyInterface { void m() throws NullPointerException; } class SuperClass { // SuperClass class doesn't implements MyInterface interface public void m() { System.out.println("Inside SuperClass m()"); } } class SubClass extends SuperClass implements MyInterface { } public class Program { public static void main(String args[]) { SubClass s = new SubClass(); s.m(); } }
輸出
Inside SuperClass m()
以上程式碼顯示了一個具體的類 SubClass,它宣告實現了 MyInterface 介面,但沒有實現介面的 m() 方法。這段程式碼是合法的,因為它的父類 SuperClass 實現了一個名為 m() 的方法,與介面中的方法名稱相同。
廣告