如何在dart中用它的主体模板覆盖抽象的方法?

问题描述 投票:0回答:2

我想做这样的事情。

abstract class A {

  void someMethod(dataStates) {
    switch (dataStates) {
      case DataStates.loading:
        stackIndex = 0;
        break;
      case DataStates.failed:
        stackIndex = 1;
        break;
      case DataStates.completed:
        stackIndex = 2;
        break;
    } // switch
  } // someMethod

} // class A


class B implements A {

  @override
  void someMethod(dataStates) {
    switch (dataStates) {
      case DataStates.loading:
        stackIndex = 0;
        break;
      case DataStates.failed:
        stackIndex = 1;
        break;
      case DataStates.completed:
        stackIndex = 2;
        break;
    } // switch
  } // someMethod

} // class B

但是当我在B类中重写someMethod()时 我得到的方法是空的,就像这样。

  @override
  void someMethod(dataStates) {
    // TODO: implement someMethod
  }

如何在重写时有一个默认(模板)的方法体?

oop flutter dart overriding abstract-class
2个回答
0
投票

使用这个

@override
  void someMethod(dataStates) {
    super.someMethod(dataSates);
  }

0
投票
class B extends A { // extends not implements
  @override
  void someMethod(dataStates) {
    super.someMethod(dataStates);

    // Do what you want to do 
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.