我创建了一个抽象类,其中包含无状态小部件可以覆盖的方法和属性,但在实现该类之后,由于无状态小部件的不变性,我必须将小部件属性设置为最终属性,然后将抽象类属性也设置为最终属性。然后,我收到错误,必须初始化最终变量。
使用最终变量实现抽象类的正确方法是什么?
抽象类
abstract class BusinessCard {
final CardView cardView;
final CardInfo cardInfo;
Widget front(BuildContext context);
Widget back(BuildContext context);
}
Run Code Online (Sandbox Code Playgroud)
实施类
class Card1 extends StatelessWidget implements BusinessCard {
final CardView cardView;
final CardInfo cardInfo;
Card1({
@required this.cardView,
@required this.cardInfo,
});
@override
Widget build(BuildContext context) {
return cardView == CardView.front ? front(context) : back(context);
}
@override
Widget front(BuildContext context) {
}
@override
Widget back(BuildContext context) {
}
}
Run Code Online (Sandbox Code Playgroud)