今日題目考察:類實現接口但未重寫接口方法,且接口無默認方法,代碼能否編譯通過?
package Nov2016;
public class Ques1102 implements Parent {
@Override
public void method() { } // 實現了接口方法
}
interface Parent {
public void method(); // 無默認實現
}
請問主程序輸出結果是?(注意:題目未提供 main 方法)
Ques1102 實現了 Parent 接口,並用 @Override 正確實現了 method(),滿足接口契約Error: Main method not found in class Nov2016.Ques1102public static void main(String[] args) { new Ques1102().method(); },程序正常運行,**無任何輸出** (方法體為空)| 特性 | 語法 | 實現類要求 |
|---|---|---|
| 抽象方法 | void foo(); | 必須實現 (除非類是 abstract) |
| 默認方法 | default void foo() { ... } | 可選實現,繼承默認行為 |
| 靜態方法 | static void bar() { ... } | 不可繼承,只能 Parent.bar() 調用 |
| 私有方法 (Java 9) | private void helper() { ... } | 接口內部復用,不可繼承 |
InterfaceA.super.foo()題目設計意圖:考察對「接口契約」與「類完整性」的理解。無 main 方法無法直接運行,但編譯期類結構合法。面試常作為「編譯 vs 運行」區分的入門題。