抽象クラスがあるとしましょう:
abstract class DBTable {
abstract boolean append();
}
また、DBTable から継承する子クラスもあります。
// Client objects are rows of a database table
class Client extends DBTable {
@Override
boolean append() {
}
}
最後に、Client オブジェクトの非正規化形式を表すために使用した Client のサブクラスがあるとします (これで問題ないと思います。すべて同じパッケージにあり、Client.Expand -is a- Client です)。
私がやりたいのは、Client.Expand の append() メソッドをオーバーライドし、Client の append() メソッドまで連鎖させてから、サブクラスにのみ適した作業に戻ることです。このようなもの...
// Expand is a member class of Client
static class Expand extends Client {
@Override
boolean append() {
super.append();
:
:
}
}
Javaはこれを許可しますか? 親クラスで既にオーバーライドされているメソッドをオーバーライドしようとすると、IDE からエラーが発生します。オーバーライドされたメソッドをオーバーライドして、子クラスに必要な追加の実装を提供できるようにする必要があるようですが、Java はこの種の継承用に構築されていないのでしょうか?