在Javascript中如何让父类默认使用子类方法?[duplicate]

yzuktlbb  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(145)

此问题在此处已有答案

ES6 - Call static method within a class(3个答案)
昨天关门了。
目前,我有一个基类,其中大部分是静态方法,其行为与我所希望的不同。
它有一个主静态方法,它会调用类中的其他静态方法,我想让它做的是,如果我创建一个子类,覆盖一个或多个在基类中调用的方法,它会调用那些版本,而不是它自己的,如果它们不是由它使用的子类实现的。
这里有一个很基本的例子来说明我的意思

class Parent {
  static handleStuff(method, data) {
    switch (method) {
      case "1":
        this.methodOne(data);
        break;
      case "2":
        this.methodTwo(data);
        break;
    }
  }

  static methodOne(data) {
    console.log('not implemented');
  }
  static methodTwo(data) {
    console.log('not implemented');
  }
}

class Child extends Parent {
  static methodOne(data) {
    console.log(data);
  }
}

Child.handleStuff("1", "stuff"); // expecting it to print "stuff" but currently get "not implemented"
Child.handleStuff("2", "more stuff"); // expecting it to print "not implemented"

这在Javascript中是可能的吗?我知道它的对象并不像人们所期望的那样工作。

efzxgjgh

efzxgjgh1#

你可以尝试使用类继承吗?要创建类继承,请使用extends关键字。

class Child extends Parent{
    static methodOne(data) {
        console.log(data);
    }
}

相关问题