首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 子類覆蓋父類方法後,如何調用父類同名方法

     編輯:程式設計綜合問答

Java 中子類重寫(Override)父類方法後,若需在子類中調用父類原本的實現,可使用 super 關鍵字。本文說明用法與注意事項。

核心語法

super.父類方法名(參數列表);

示例代碼

class Father {
    public void show() {
        System.out.println("父類方法");
    }
}

class Son extends Father {
    @Override
    public void show() {
        System.out.println("子類方法開始");
        super.show();  // 調用父類同名方法
        System.out.println("子類方法結束");
    }
}

public class Test {
    public static void main(String[] args) {
        new Son().show();
    }
}

輸出:

子類方法開始
父類方法
子類方法結束

關鍵點總結

關鍵字含義使用場景
super.method()調用父類方法子類重寫後需保留父類邏輯
super.field訪問父類字段子類有同名字段時區分訪問
super()調用父類構造器子類構造器首行隱式/顯式調用
this.method()調用當前類方法區分重載方法或鏈式調用

注意事項

  • super 只能在非靜態上下文中使用(實例方法、構造器)
  • 構造器中 super(...) 必須是第一條語句
  • 私有方法(private)不可被繼承,自然無法通過 super 調用
  • 靜態方法屬於類,不存在覆蓋(Override),只有隱藏(Hiding),不可用 super 調用

實戰場景

@Override
public void save() {
    // 子類擴展邏輯:記錄日誌
    log.info("保存前檢查...");
    
    // 調用父類核心保存邏輯
    super.save();
    
    // 子類擴展邏輯:發送通知
    notificationService.send("保存成功");
}

這種「模板方法」模式極其常見:子類在父類算法骨架前後插入擴展邏輯,通過 super 復用核心實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved