我有点困惑:我可以覆盖一个setter / getter但仍然使用super setter / getter吗?如果是 - 怎么样?
用例:
class A {
void set value(num a) {
// do something smart here
}
}
class B extends A {
void set value(num a) {
// call parent setter and then do something even smarter
}
}
如果不可能,那么仍然可以保留API但扩展新类中的逻辑。代码的用户已经使用了instance.value = ...所以我不想将其更改为方法调用。
请帮助:)
答案 0 :(得分:9)
只需要调用 super.value = a
class A {
void set value(String value) {
print(value.toUpperCase());
}
}
class B extends A {
void set value(String value) {
super.value = value;
print(value.toLowerCase());
}
}
void main() {
B b = new B();
b.value = "Hello World";
}
答案 1 :(得分:7)
您可以使用super.
访问父级:
class B extends A {
void set value(num a) {
super.value = a;
}
}