Flutter:从抽象的无状态小部件继承

Lit*_*key 4 inheritance abstract-class widget flutter

我有一个必须采用自定义小部件的课程。这个可以有两种不同的实现,所以我想有一个抽象类作为接口,并创建两个扩展抽象类的其他类。所以我有:

abstract class ICustomWidget extends StatelessWidget{}

class A extends ICustomWidget{

  @override
  Widget build(BuildContext context) =>
     //Implementation
}

class B extends ICustomWidget {
  @override
  Widget build(BuildContext context) =>
     //Implementation
}
Run Code Online (Sandbox Code Playgroud)

我想问一下这是正确的方法还是有另一种方法。谢谢

Tru*_*inh 6

而不是extends,我会使用implements,因为它ICustomWidget是一个接口,而不是一个类,除非您可以提供更多上下文和/或代码示例。

这是接口的示例代码


abstract class ICustomWidget {
// or
// abstract class ICustomWidget extends StatelessWidget {
  void myProtocal();
}

class A extends StatelessWidget implements ICustomWidget {

  @override
  void myProtocal() {
    // TODO: implement myProtocal
  }

  @override
  Widget build(BuildContext context) {
     //Implementation
  }
}

class B extends ICustomWidget {
  // compilation error, `myProtocal` not implemented
  @override
  Widget build(BuildContext context) {
     //Implementation
  }
}
Run Code Online (Sandbox Code Playgroud)