私は2つのクラスを持っています:
public abstract class A extends JPanel {
@Override
public void repaint() {
super.repaint();
//my own implementation of A repaint
}
private void method2() {
//I need to call the repaint method of A here
}
}
public class B extends A {
@Override
public void repaint() {
super.repaint();
//my own implementation of B repaint
}
}
簡単な検索で、基本クラスから基本オーバーライドされたメソッドを呼び出す方法がないことがわかりました。問題は、repaint
A 内で A のメソッドをどのように呼び出すことができるかということです。ここで説明されているように、基本メソッドを作成し、明示的に拡張する別のメソッドを作成できることはわかっていますが、Java 設計パターンに従うためにすべての子に共通する必要があるメソッドであるため、最も何よりも重要なことは、別のプログラマーが私の仕事を続けている場合、彼は再描画メソッドを探しているでしょう.これを行うための提案はありますか?
編集:申し訳ありませんが、クラス A が抽象であることを忘れていたので、A のすべてのインスタンスも B です (想像してください、A クラスの子がもっとあるので、B で完全に実装することはできません。 A のすべての子でその動作が必要なため)、また、実行の特定の部分で A のビューを更新する必要があるため、これが必要ですが、A のものを更新せずに A のそれぞれの部分をペイントしたいだけです子どもたち。