下面的代码:
class Tools {
static int roll(int min, int max) {
// IMPLEMENTATION
}
static int roll(List<int> pair) {
// IMPLEMENTATION
}
}
呈现一个The name 'roll' is already defined
第二个错误roll
功能。
怎么会?既然函数的参数是不同的,那么多态性不应该适用吗?
编辑。更正了标题,以便更好地反映主题。
您的代码演示的是函数重载,与多态性无关。
Dart 根本不支持函数重载。
您可以为方法使用不同的名称或可选的命名或未命名参数
// optional unnamed
void foo(int a, [String b]);
...
foo(5);
foo(5, 'bar');
// optional named
void foo(int a, {String b});
...
foo(5);
foo(5, b :'bar');
可选参数也可以有默认值。
可选的命名参数和未命名参数不能一起使用(单个函数只能使用其中一个)
多态性和静态方法:
静态方法只能在没有类名作为前缀的情况下从定义它们的类内部访问。当从子类调用时,需要使用超类的名称作为前缀。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)