在 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() 的方法,與介面中的方法名稱相同。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP