首页 > 解决方案 > JavaScript 中的继承

问题描述

我有一个像这样的类人:

 class Person {
    constructor(name, age, gender, interests) {
        Object.assign(this, {name, age, gender, interests});
    }
}

我可以像这样制作子类:

class Teacher extends Person {
    constructor(name, age, gender, interests, subject, grade) {
        super(name, age, gender, interests);
        Object.assign(this, {subject, grade});
    }
}

但是,如果我想创建子类但又不想继承 Person 类的所有属性怎么办。例如,我不想继承利益财产。我是否像这样排除它:

class Student extends Person {
    constructor(name, age, gender, height, weight) {
        super(name, age, gender); // I haven't included the interests property here
        Object.assign(this, {height, weight});
    }
}

我还是初学者,所以我不确定这是否是好的做法。祝你今天过得愉快!

标签: javascriptinheritance

解决方案


继承意味着什么……你继承了父母给你的东西。所以“避免属性”并不是真正推荐的(我不确定你是否能做到)。

两种解决方案:

  • interests明智的架构(我推荐):在您的具体情况下,我只会Teacher上课。如果其他类也有,我会创建一个继承自的interests子类。PersonInterestTeacher
  • 代码明智:您设置interestsnullundefined在不需要它的类中。

推荐阅读