技术文摘
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 关键字与方法重写的工作原理,能帮助开发者编写出更高效、更具维护性的面向对象代码。
- 主要的支持MySQL软件包
- MySQL 中怎样利用多个表的数据创建视图
- 如何将mysql字符串转为date
- Lob 数据类型是什么?JDBC 中这些数据类型存在哪些限制?
- DBMS 的集中式架构与客户端服务器架构
- 怎样从特定 MySQL 表获取所有记录
- 如何重命名现有 MySQL 事件
- Microsoft Windows 系统中安装 MySQL
- 怎样在MySQL数据库中永久记录当前事务所做的更改
- 使用 JDBC API 选择或切换到 MySQL 另一个数据库的方法
- 编写和使用 MySQL 视图前需满足哪些先决条件
- 如何匹配 MySQL 列中含反斜杠的值 如 a\b
- MySQL 中 MINUTE()、MICROSECOND() 与 HOUR() 函数
- MySQL客户端的日志记录
- 怎样摧毁触发器