我目前正在做一个项目,我有大量的类继承自其他类,这些类继承自其他类等等。它可能比它应该的更复杂,但我是抽象的傻瓜。
无论如何,有时我需要将 getter/setter 从公共更改为私有。我想这并不是真正的需要,而是希望切断子类中预设的东西,但仍需要在父类中公开访问。
所以一个例子是:
Class Base {
public function set label( value:String ):void{};
}
Class A extends Base {}
Class B extends A {
public function B() {
super();
this.label = "stuff";
}
override public function set label( value:String ):void {
//this setter should not be publicly available since the label should not be possible to change in this class
}
}
目前,在这些情况下,我正在做两件事之一:
- 覆盖 setter 以不执行任何操作或将其设置为默认值,以便它仍然可以更新/渲染/任何内容
- 抛出一个错误,说它在该类中不可用
我做了一些搜索,一切似乎都表明这是不可能的,但我从未发现它明确指出这是不可能的。那么是否可以更改继承属性/函数的访问修饰符?