Inheritance 如何使用相同的类名在dart中扩展类
有没有一种方法可以像java那样在dart中使用与其父类相同的名称来扩展类? 像这样的东西…:Inheritance 如何使用相同的类名在dart中扩展类,inheritance,dart,extend,Inheritance,Dart,Extend,有没有一种方法可以像java那样在dart中使用与其父类相同的名称来扩展类? 像这样的东西…: class Connection extends com.mypackage.Connection{ ... } 通过使用包名定义父类,我可以使用相同的名称扩展该类,但在dart中可能吗?在dart中,您可以导入另一个带有前缀的库。这允许您限定对名称的引用,因此它不会与当前库中的相同名称冲突: 将“other_connection.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,但不必限定无状态小部件等。您可以在同一文件中导入带前缀和不带前缀的内容。我会更新答案。我确实尝试过这个,但结果不值得费心,尤其是材料包中有一个类。我最后只是改变了我自己班的名字。