DART:扩展类中抽象方法的实现

2024-04-03

我在文件 myclass.dart 中有两个类:

abstract class A{
  _myAbstractMethod();
}

class B extends A{

}

此时编译显示: MISSING CONCRETE IMPLEMENTATION OF一._方法。 这才是正确的行为!

当我将每个类放在单独的文件中时,问题就出现了。当我将 B 类声明移动到另一个文件时,编译不再告诉缺少的实现。

请注意,类 A 上的方法是私有的,并且“问题”仅发生在单独文件中的每个类中。


这是预期的行为,因为类上的方法A图书馆是私人的。

这意味着当放入第二个库时,该类Bknow that A有一个名为_myAbstractMethod,如果是的话,它甚至不能写名字(写_myAbstractMethod在图书馆B代表不同的名称,为第二个库私有)。

所以,从B它正确实现的观点A的(空)界面。 一切都很好。

The A阶级不同意,但也无能为力。 为了使B类完成后,编译器添加了一个合成_myAbstractMethod (using A的名字)调用时抛出的实现。

这是预期的行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DART:扩展类中抽象方法的实现 的相关文章

随机推荐