javascript子类是否需要与其父类具有相同的参数?

javascript子类是否需要与其父类具有相同的参数?,javascript,class,oop,ecmascript-6,subclass,Javascript,Class,Oop,Ecmascript 6,Subclass,这是我的家长课: class Parent { constructor(id, label, header="") { this.id = id; this.label = label; this.header = header; } } 如果愿意,您可以手动设置标题,它将默认为“” 但对于某些子类,我不允许在实例化时设置头。这是否有效: class Child extends Parent { constructor(id, label) { su

这是我的家长课:

class Parent {
  constructor(id, label, header="") {
    this.id = id;
    this.label = label;
    this.header = header;
  }
}
如果愿意,您可以手动设置标题,它将默认为

但对于某些子类,我不允许在实例化时设置头。这是否有效:

class Child extends Parent {
  constructor(id, label) {
    super(id, label);
    this.header = "Default Header";
  }
}

也就是说,子类的构造函数是否可以省略其父类的某些参数?

不需要这样做。这就是类扩展的工作原理。您正在将
parent
属性传递给
child
类。至于
构造器
你自己决定要放什么。

不需要。这就是类扩展的工作原理。您正在将
parent
属性传递给
child
类。至于
构造器
你想在那里放什么取决于你。

是的,你能做到

您还可以在子构造函数中调用父构造函数(带有3个参数):

class Child extends Parent {
  constructor(id, label) {
    super(id, label, "Default header");
  }
}
是的,你能做到

您还可以在子构造函数中调用父构造函数(带有3个参数):

class Child extends Parent {
  constructor(id, label) {
    super(id, label, "Default header");
  }
}

您正在忽略父类中的
变量。这是打字错误还是故意的?(也就是说,你没有做
this.header=header
,而是忽略它)@svenskkunganka打字错误,干杯你为什么不试试呢?听起来更像是
实现了
扩展
没有这样的功能。子类通常会掩盖更一般的父类的一些参数,因为它变得更具体。如果你的意思是“应该”(在最佳实践的意义上),那么就这么说。顺便说一下,类没有参数;它们的构造函数会这样做。您将忽略父类中的
变量。这是打字错误还是故意的?(也就是说,你没有做
this.header=header
,而是忽略它)@svenskkunganka打字错误,干杯你为什么不试试呢?听起来更像是
实现了
扩展
没有这样的功能。子类通常会掩盖更一般的父类的一些参数,因为它变得更具体。如果你的意思是“应该”(在最佳实践的意义上),那么就这么说。顺便说一下,类没有参数;它们的构造函数会这样做。
类子类扩展父类
-子类获取父属性,而不是其他方式,对吗?
类子类扩展父类
-子类获取父属性,而不是其他方式,对吗?