You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript子类调用父类同名函数:先执行子类代码再执行父类逻辑

嘿,这个需求其实挺常见的,咱们只要在子类的同名方法里先跑完自己的自定义代码,再主动调用父类的对应方法就能实现啦!我给你拿几种主流的面向对象语言举例子,一看就懂:

具体实现示例

JavaScript 场景

假设你有个基础父类 BaseClass,里面有个负责核心功能的 doSomething 方法:

class BaseClass {
  doSomething() {
    console.log("执行父类的基础doSomething逻辑");
  }
}

子类 ChildClass 继承它之后,想要先执行自己的定制逻辑,再触发父类的基础功能,只需要在子类的 doSomething 里先写自己的代码,然后用 super.doSomething() 调用父类方法就行:

class ChildClass extends BaseClass {
  doSomething() {
    // 第一步:执行子类的自定义代码
    console.log("执行子类专属的doSomething定制逻辑");
    // 第二步:调用父类的同名方法
    super.doSomething();
  }
}

// 测试效果
const childInstance = new ChildClass();
childInstance.doSomething();
// 输出顺序会是:
// 执行子类专属的doSomething定制逻辑
// 执行父类的基础doSomething逻辑

Java 场景

Java里的逻辑完全一致,用 super 关键字就能调用父类的方法:

// 父类定义
class BaseClass {
    public void doSomething() {
        System.out.println("执行父类的基础doSomething逻辑");
    }
}

// 子类实现
class ChildClass extends BaseClass {
    @Override
    public void doSomething() {
        // 先跑子类自己的逻辑
        System.out.println("执行子类专属的doSomething定制逻辑");
        // 再调用父类方法
        super.doSomething();
    }
}

// 测试类
public class TestDemo {
    public static void main(String[] args) {
        ChildClass child = new ChildClass();
        child.doSomething();
        // 输出顺序和JS完全一样
    }
}
几个关键提醒
  • 核心逻辑就是主动调用父类方法,而且一定要把这步放在子类自定义代码的后面,才能保证执行顺序符合你的要求。
  • 注意父类方法的访问权限:比如Java里如果父类方法是 private,子类就没法直接调用,得改成 protected 或者 public 才行。
  • 如果父类方法需要传参数,调用 super.方法名() 的时候记得把对应参数传进去,别漏了!

内容的提问来源于stack exchange,提问作者Mateus Koppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:34:28