私は最近 (4 日前) に Java でプログラミングを始めました。私は、C++ と PHP の全体的なプログラミング経験があります。私の質問は、JAVA ですべてのクラスで利用できる関数を実装できるかどうかです。いくつかの場所 (ログ イベント、エラーなど) で呼び出す必要があるグローバル ロギング関数を考えています。
A と B の 2 つのクラスがあるとします。両方でロギング関数を呼び出す必要がありますが、関数本体全体をコピーしたくなく (ひどいことだと思います)、それを厳密に呼び出したい (別のクラスを作成せずに)クラス、インスタンス化、およびインスタンスからの呼び出し)、のようにlogEvent(someVariable)
。したがって、AとBが拡張する抽象クラスCを使用する必要がありますが、それらはすでに他のクラス(組み込み)の拡張です。多重継承は許可されていない (そうですか?) ため、いくつかのトリックを実行する必要があります。シングルトンも私を喜ばせません。PHP または C++ では、関数本体を含む別のファイルを作成し、それを含めるだけです。
これが私がそれをどのように使いたいかです:
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
public class B extends SomeOtherClass {
String error = "Error from class B";
logEvent(error);
}