繁体   English   中英

Dart 抽象私有方法

[英]Dart abstract private method

如何在 dart 中有一个抽象的私有方法?

// person.dart
abstract class Person{
  void _walk();  //Abstract Method
  void _talk();  //Abstract Method
}
// jay.dart
import "person.dart";
class Jay extends Person{
  @override
  void _walk() {
    print("Jay can walk");
  }
 @override
  void _talk() {
    print("Jay can talk");
  }
}

我想对Jay实例隐藏_walk_talk

package:meta提供了一个@visibleForOverriding注释,可以做你想做的事。 请注意,违反它只会生成分析警告,并且不会在运行时强制执行。

就我个人而言,我认为将本应是私有的东西放在抽象基类中是一个坏主意,因为它们不应该是接口的一部分。 考虑这样做:

abstract class Person {
  ...
}

abstract class _Person extends Person {
  void walk();
  void talk();
}

现在您的库可以从_Person内部派生类并使用walktalk ,并且它们根本不会暴露给您库的外部使用者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM