Flutter:继承自抽象的无状态小部件
Posted
技术标签:
【中文标题】Flutter:继承自抽象的无状态小部件【英文标题】:Flutter: inherit from abstract stateless widget 【发布时间】:2019-07-23 13:39:51 【问题描述】:我有一个必须采用自定义小部件的类。这个可以有两种不同的实现,所以我想有一个抽象类作为接口,并创建另外两个扩展抽象类的类。所以,我有:
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
我想问一下这是否是正确的方法,或者还有另一种方法。谢谢
【问题讨论】:
这没有错。通常,组合优于 Flutter 小部件的继承,但这取决于您的具体用例。 “一个必须采用自定义小部件的类”你能解释为什么会这样吗? 【参考方案1】:我会使用implements
而不是extends
,因为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
【讨论】:
以上是关于Flutter:继承自抽象的无状态小部件的主要内容,如果未能解决你的问题,请参考以下文章