javascript - 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});
}
}
我还是初学者,所以我不确定这是否是好的做法。祝你今天过得愉快!
解决方案
继承意味着什么……你继承了父母给你的东西。所以“避免属性”并不是真正推荐的(我不确定你是否能做到)。
两种解决方案:
interests
明智的架构(我推荐):在您的具体情况下,我只会Teacher
上课。如果其他类也有,我会创建一个继承自的interests
子类。PersonInterest
Teacher
- 代码明智:您设置
interests
为null
或undefined
在不需要它的类中。
推荐阅读
- c++ - 包装 std::vector
从 C++ 到 C 用于 Swift - r - R 函数中的错误。尝试在 intergerOneIndex 中选择少于一个元素
- python - R中的Collatz猜想
- facebook-graph-api - Facebook 的手动登录流程是否允许移动 webview 自动启动 Facebook 的本地应用程序?
- geotiff - GeoTrellis:为在 GeoTrellis 之外托管的云优化 GeoTIFF 创建属性存储
- ruby-on-rails - 安装 Poppler Gem 并在运行服务器时出现捆绑程序错误
- android - Socket.emit 不适用于向上和返回按钮_Android
- eslint - 将 ESLint 配置为在使用某些键定义对象时出错
- javascript - (CORS) - 跨域资源共享连接问题
- tensorflow - TensorFlow 数据管道