Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inheritance Dart:如何为抽象类创建最终成员接口_Inheritance_Dart_Interface - Fatal编程技术网

Inheritance Dart:如何为抽象类创建最终成员接口

Inheritance Dart:如何为抽象类创建最终成员接口,inheritance,dart,interface,Inheritance,Dart,Interface,我想强制类User来实现抽象类Base中的静态成员。这是可能的,还是我错误地使用了抽象继承范式 如果没有继承,用户可以简单地实现它自己的静态成员,而不重写基,但是我希望我的linter在类没有实现某个静态成员时发出警告 工作原理(不强制执行接口) 我们可以在Base和User中隐式使用相同的界面 抽象类基类{ //这个成员可以简单地删除,代码段仍然可以编译。 静态最终字符串routeName='/base'; } 类用户扩展基{ 静态最终字符串routeName='/base/user'; }

我想强制类
User
来实现抽象类
Base
中的静态成员。这是可能的,还是我错误地使用了抽象继承范式

如果没有继承,
用户
可以简单地实现它自己的静态成员,而不重写
,但是我希望我的linter在类没有实现某个静态成员时发出警告

工作原理(不强制执行接口) 我们可以在
Base
User
中隐式使用相同的界面

抽象类基类{
//这个成员可以简单地删除,代码段仍然可以编译。
静态最终字符串routeName='/base';
}
类用户扩展基{
静态最终字符串routeName='/base/user';
}
如果我们要创建一个新类
Person
,该类还扩展了
Base
,那么我们没有具体的实现需求。理想情况下,我希望强制
Person
拥有一个静态成员
routeName

classperson扩展了基本类{
//没有关于缺少静态成员“routeName”的警告。
}
想法示例(未编译)
Base
将包含一个未实现的静态成员(
routeName

除非指定
routeName
(例如
routeName='/base'
),否则此代码段不会编译

抽象类基类{
//IDE错误:必须初始化最终变量“routeName”。
静态最终字符串routeName;
}
实现
Base
用户将覆盖或实现静态成员

除非我们删除错误放置的
@override
,否则代码段将报告一条警告

类用户扩展基{
//IDE警告:字段不重写继承的getter或setter。
@凌驾
静态最终字符串routeName='/base/user';
}
我希望IDE为
Person
类抛出一个错误,因为它没有实现静态成员
routeName

classperson扩展了基本类{
//预期IDE错误:必须初始化静态最终变量“routeName”。
}

对我来说,这看起来类似于,但我不熟悉Java的细节。

您对其他解决方案持开放态度吗?这是不可能的,但是有其他非常方便的方法来实现这一点。欢迎在静态成员上实施此类类行为的任何其他解决方案。我的主要目标是捕捉难闻或不完整的类(最好是使用静态代码分析或IDE中的linting)。结果是一个易于实现的类,但是getter仍然需要一个本地定义的常量来实现编译时方法。