ES6 中子类继承父类方法:super 关键字与方法重写的工作原理

2025-01-09 14:58:53   小编

在 ES6 的面向对象编程中,子类继承父类方法是一个重要特性,其中 super 关键字与方法重写发挥着关键作用,深入理解它们的工作原理对开发者至关重要。

我们来看看 super 关键字。super 关键字在子类构造函数中用于调用父类的构造函数。当创建子类实例时,子类构造函数必须先调用 super() 才能使用 this 关键字。这是因为在子类构造函数内部,this 的初始化依赖于父类构造函数的执行。例如:

class Parent {
    constructor(name) {
        this.name = name;
    }
}

class Child extends Parent {
    constructor(name, age) {
        super(name);
        this.age = age;
    }
}

let child = new Child("Tom", 10);
console.log(child.name); 
console.log(child.age); 

在上述代码中,子类 Child 的构造函数通过 super(name) 调用了父类 Parent 的构造函数,将 name 传递给父类进行初始化,然后再进行自身特有的属性 age 的初始化。

而方法重写则是子类对从父类继承来的方法进行重新定义。当子类中定义了与父类同名的方法时,就实现了方法重写。在重写的方法中,我们还可以使用 super 关键字来调用父类的原始方法。比如:

class Parent {
    sayHello() {
        console.log("Hello from Parent");
    }
}

class Child extends Parent {
    sayHello() {
        super.sayHello();
        console.log("Hello from Child");
    }
}

let child = new Child();
child.sayHello(); 

在这个例子中,子类 Child 重写了父类 Parent 的 sayHello 方法。在 Child 的 sayHello 方法中,首先通过 super.sayHello() 调用了父类的原始方法,然后再输出自己的信息。

super 关键字在 ES6 子类继承父类方法中扮演着桥梁的角色,它确保了子类与父类之间构造函数的正确调用和方法的关联。而方法重写则为子类提供了定制化行为的能力,使代码更加灵活和可扩展。掌握 super 关键字与方法重写的工作原理,能帮助开发者编写出更高效、更具维护性的面向对象代码。

TAGS: 方法重写 ES6 继承 super关键字 子类与父类

欢迎使用万千站长工具!

Welcome to www.zzTool.com