老师,这里的super只传递了username,color属性为什么也被继承了

来源:4-5 选择练习

Elisha666

2022-04-09 16:56:10

https://img.mukewang.com/climg/625149da0917bbe305480111.jpg

写回答

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);

https://img.mukewang.com/climg/625152c4098e46c703400163.jpg


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才能拓展子类的属性、方法等。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程