inheritance - 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
}
我想问一下这是否是正确的方法,或者还有另一种方法。谢谢
解决方案
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
}
}
推荐阅读
- ruby-on-rails - 不同模型列之间的条件
- scroll - 为什么我的超链接不能滚动到 Edge 中的相应位置?
- javascript - React testing-library - 测试在第一个 useEffect 挂钩中设置状态的 Promise
- python - 使用 Scrapy Spider 使用 JavaScript 表单登录网站
- c - 如何将参数传递给 C 中的 pthread 线程函数?
- android - 如何在颤动中显示倒数计时器和警报框
- google-sheets - 谷歌表格脚本自动将所有表格的列表添加(和更新)到一个范围内?
- java - ebay OAuth 2.0 库无法解决方法初始化()
- c - linux命令的C实现
- node.js - 使用 Mocha、Chai、node.js 测试异步方法