技术文摘
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 关键字与方法重写的工作原理,能帮助开发者编写出更高效、更具维护性的面向对象代码。
- 在 MongoDB 4 里怎样对文档排序并只显示单个字段
- MySQL 查询:如何查找列中特定 id 的字符串计数
- MySQL 中 NULLIF() 参数不相等时表达式如何计算
- 删除带有该触发器的表时触发器的情况
- 如何创建无BEGIN和END的MySQL存储过程
- 如何结合 REPLACE() 与 UPDATE 子句对表进行永久性更改
- 如何从现有 MySQL 表的列中移除 PRIMARY KEY 约束
- MySQL 程序全面介绍
- 如何在MySQL中创建带列列表的视图
- 如何评估MySQL SUM() 函数与返回不匹配行的SELECT语句一同使用的情况
- MySQL是否默认启用INNODB
- MySQL 的默认端口号是多少
- 如何为不同类型的 MySQL 事件规划时间表
- 登录MySQL命令行工具是否需要身份验证
- 如何查看特定 MySQL 数据库中存储的视图列表