老师,这里的super只传递了username,color属性为什么也被继承了
来源:4-5 选择练习
Elisha666
2022-04-09 16:56:10

1回答
好帮手慕久久
2022-04-09
同学你好,解答如下:
1、继承的关键字是extend,与super无关,不写super也可以实现继承:
// 父类
class Parent {
color="red"
constructor () {
this.name = "张三"
}
}
// 子类Son 继承了 父类
class Son extends Parent {
}
// 实例化子类
const s = new Son();
// 子类继承了父类的name、color属性
console.log(s.name);
console.log(s.color);
2、如果子类想使用constructor方法拓展属性,那么需要写super:
// 父类
class Parent {
// 父类需要传入参数username
constructor (username) {
this.name = username
}
}
// 子类Son 继承了 父类
class Son extends Parent {
// 子类中 写了constructor方法
constructor (username) {
// 这里就必须写super
super(username)
// 在这里使用ths,新增了属性
this.age = 100
}
}
// 实例化子类
const s = new Son("zhang");
// 子类有父类的name属性
console.log(s.name);所以super与继承没有直接关系,只是某些情况下,要写super才能拓展子类的属性、方法等。
祝学习愉快!
相似问题