Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.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_Extend - Fatal编程技术网

Inheritance 如何使用相同的类名在dart中扩展类

Inheritance 如何使用相同的类名在dart中扩展类,inheritance,dart,extend,Inheritance,Dart,Extend,有没有一种方法可以像java那样在dart中使用与其父类相同的名称来扩展类? 像这样的东西…: class Connection extends com.mypackage.Connection{ ... } 通过使用包名定义父类,我可以使用相同的名称扩展该类,但在dart中可能吗?在dart中,您可以导入另一个带有前缀的库。这允许您限定对名称的引用,因此它不会与当前库中的相同名称冲突: 将“other_connection.dart”作为其他导入; 类连接扩展了其他。连接{ ...

有没有一种方法可以像java那样在dart中使用与其父类相同的名称来扩展类? 像这样的东西…:

class Connection extends com.mypackage.Connection{
    ...
}

通过使用包名定义父类,我可以使用相同的名称扩展该类,但在dart中可能吗?

在dart中,您可以导入另一个带有前缀的库。这允许您限定对名称的引用,因此它不会与当前库中的相同名称冲突:

将“other_connection.dart”作为其他导入;
类连接扩展了其他。连接{
...
}
这也可用于限定来自两个不同导入的冲突名称

(Dart库有一个默认导入范围,其中添加了导入的名称,并且可以直接引用。导入上的
as前缀
限定符意味着该导入被放入不同的导入范围,您可以通过
前缀
引用该导入范围。可以将多个库导入相同的前缀导入范围。)

如果使用同一导入中的多个名称,并且其中只有一个名称冲突,则可以导入带有或不带前缀的同一库。 比如说,
other\u connection.dart
声明了
连接
断开

将“other_connection.dart”作为其他导入;
导入“other_connection.dart”;
类连接扩展了其他。连接{…}
类分离扩展了断开连接{…}
带前缀的导入是Dart为避免导入中的名称冲突而提供的工具之一。另一个工具是隐藏(使用
hide
show
),它主要用于避免不同导入之间的冲突。
您可以随意使用它们(您可以将
显示连接
添加到
之后,作为其他
隐藏连接
添加到未加前缀的导入之后,但在这种简单的情况下两者都不是必需的)。

很遗憾,这似乎不是可选的,这意味着一旦应用它,就必须为该包/文件中的所有类名指定它,即使在没有歧义的情况下也是如此。例如,我想在material.dart中限定SearchDelegate,但不必限定无状态小部件等。您可以在同一文件中导入带前缀和不带前缀的内容。我会更新答案。我确实尝试过这个,但结果不值得费心,尤其是材料包中有一个类。我最后只是改变了我自己班的名字。