Flutter:child class 中的可选方法实现
Flutter: Optional method implementation in child class
我有摘要 class 。在 A class 里面我有例如 3 种方法:
abstract class A {
@protected
void method1()
@protected
void method2()
@protected
void method3()
}
现在,Class B 是从 A 扩展而来的:
class B extends A {
@override
method1(){}
@override
method2(){}
@override
method3(){}// be optional
}
我不想强制class B实现class A中所有受保护的方法。例如我想child class强制实现2个方法classA的3种方法和一种方法是可选的。
如何在 flutter 上实现?
在这种情况下,您需要为基础方法定义一个空主体class。
abstract class A {
@protected
void method1() {}
@protected
void method2() {}
@protected
void method3() {}
}
我建议您在方法主体中抛出 NotImplemented 之类的错误,以便在您忘记实现功能并调用它时通知您。
您可以通过两种方式实现所需的行为:
第一个:
abstract class A {
void method1();
void method2();
void method3 () {
//default implmentation or empty body
}
}
class B extends A {
@override
method1() {}
@override
method2() {}
}
第二个:
abstract class A {
void method1();
void method2();
}
abstract class A1 extends A {
void method3();
}
class B extends A1 {
@override
method1() {}
@override
method2() {}
}
这样你只会在 class extends A1
class 而没有实现 method3()
.
时收到警告
我有摘要 class 。在 A class 里面我有例如 3 种方法:
abstract class A {
@protected
void method1()
@protected
void method2()
@protected
void method3()
}
现在,Class B 是从 A 扩展而来的:
class B extends A {
@override
method1(){}
@override
method2(){}
@override
method3(){}// be optional
}
我不想强制class B实现class A中所有受保护的方法。例如我想child class强制实现2个方法classA的3种方法和一种方法是可选的。
如何在 flutter 上实现?
在这种情况下,您需要为基础方法定义一个空主体class。
abstract class A {
@protected
void method1() {}
@protected
void method2() {}
@protected
void method3() {}
}
我建议您在方法主体中抛出 NotImplemented 之类的错误,以便在您忘记实现功能并调用它时通知您。
您可以通过两种方式实现所需的行为:
第一个:
abstract class A {
void method1();
void method2();
void method3 () {
//default implmentation or empty body
}
}
class B extends A {
@override
method1() {}
@override
method2() {}
}
第二个:
abstract class A {
void method1();
void method2();
}
abstract class A1 extends A {
void method3();
}
class B extends A1 {
@override
method1() {}
@override
method2() {}
}
这样你只会在 class extends A1
class 而没有实现 method3()
.