Java での作業。
私はそのような抽象クラスを持っています:
public abstract class Foo {
protected Logger log = null;
// other stuff
public boolean isLoggerSet() {
return (this.log != null) ? true : false;
}
}
今、私はこのクラスを次のように拡張します:
public class Bar extends Foo {
public Bar() {
this.log = Logger.getLogger(Bar.class);
}
public void someMethod(String[] args) {
Bar b = new Bar();
if(b.isLoggerSet()) {
// do some stuff
}
}
}
The question:
Bar には と呼ばれる独自のローカル変数がないため、super.log
呼び出してもBar.class は実際に を参照していますか? または、メソッドを実装する正しい方法は、メソッドを抽象化し、Bar.classが拡張されているため、そのローカル コピーにそれ自体を実装するように強制することでしょうか?this.log
log
isLoggerSet()
log
基本的にthis.log
、Foo クラスで言わなければならないのは、自分自身を参照するからです。しかし、 Bar クラスでは null check を実行できるようにしたいのですがlog
、代わりsuper.log =
に Bar.class で使用する必要がありますか?