[英]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
内部派生类并使用walk
和talk
,并且它们根本不会暴露给您库的外部使用者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.