Inheritance 颤振:从抽象无状态小部件继承

Inheritance 颤振:从抽象无状态小部件继承,inheritance,flutter,widget,abstract-class,Inheritance,Flutter,Widget,Abstract Class,我有一个类,它必须接受一个自定义小部件。这一个可以有两个不同的实现,所以我希望有一个抽象类作为接口,并创建另外两个扩展抽象类的类。因此,我: abstract class ICustomWidget extends StatelessWidget{} class A extends ICustomWidget{ @override Widget build(BuildContext context) => //Implementation } class B ext

我有一个类,它必须接受一个自定义小部件。这一个可以有两个不同的实现,所以我希望有一个抽象类作为接口,并创建另外两个扩展抽象类的类。因此,我:

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
}

我想问一下,这是正确的方法还是有其他方法。谢谢

而不是
扩展
,我会使用
实现
,因为
ICustomWidget
是一个接口,而不是一个类,除非您可以提供更多的上下文和/或代码示例

下面是接口的示例代码


抽象类ICustomWidget{
//或
//抽象类ICustomWidget扩展了无状态Widget{
无效myProtocal();
}
类扩展了无状态widget,实现了ICustomWidget{
@凌驾
void myProtocal(){
//TODO:实现myProtocal
}
@凌驾
小部件构建(构建上下文){
//实施
}
}
类B扩展了ICustomWidget{
//编译错误,`myProtocal`未实现
@凌驾
小部件构建(构建上下文){
//实施
}
}

这没什么错。通常情况下,组合优于继承,但这取决于您的具体用例。“一个必须接受自定义小部件的类”您能解释为什么吗?