私は現在、他のクラスから継承する他のクラスなどから継承するクラスがたくさんあるプロジェクトに取り組んでいます。おそらく必要以上に複雑ですが、私は抽象化が苦手です。
とにかく、ゲッター/セッターをパブリックからプライベートに変更する必要がある場合があります。それは実際には必要ではないと思いますが、子クラスに事前設定されているものの、親クラスでパブリックにアクセスできるようにする必要があるものを切り捨てたいという願望です。
したがって、例は次のようになります。
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
}
}
現在、私はこれらの場合に2つのことのいずれかを行っています:
- セッターをオーバーライドして何もしないか、デフォルト値に設定して、更新/レンダリング/何でもできるようにします
- そのクラスでは利用できないというエラーをスローします
私はいくつかの検索を行いましたが、すべてがこれが不可能であることを示しているようですが、不可能であると明示的に述べられていることは一度もありません. 継承されたプロパティ/関数のアクセス修飾子を変更することは可能ですか?