据我在 Dart 中了解,可以使用抽象类来声明“接口(interface)”或“协议(protocol)”(如果您来自 Objective-c)。
无论如何,我很难找到在抽象类/接口(interface)中声明可选方法的方法。
如果我在抽象类中声明一个方法 一个 , 并让具体类 乙实现一个 ,我在编译器中收到警告。
我希望能够将方法声明为可选或至少提供默认实现,而无需在实现我的接口(interface)的类中“重新声明”它。
abstract class A{
void abstractMethod();
}
class B implements A{
//not implementing abstract method here gives a warning
}
最佳答案
这不是接口(interface)的工作方式。如果你的类声明要实现一个接口(interface),那么这就是它必须做的。
可以拆分界面
abstract class A {
void abstractMethod();
}
abstract class A1 extends A {
void optionalMethod();
}
class B implements A {
//not implementing abstract method here gives a warning
}
只有当它声明执行A1
它必须执行optionalMethod
.或者,您可以扩展抽象类
abstract class A{
void abstractMethod();
void optionalMethod(){};
}
class B extends A {
//not implementing abstract method here gives a warning
}
那么只有 abstractMethod
需要被覆盖,因为 A
不提供实现。
关于oop - 在抽象类中将方法声明为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38750689/