在 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.class 实际上是指super.log
即使我打电话this.log
,因为 Bar 没有它自己的局部变量调用log
?或者实现该isLoggerSet()
方法的正确方法是使其抽象并强制 Bar.class 在它的本地副本上实现它,log
因为它已被扩展?
基本上我不得不this.log
在我的 Foo 类中说,因为它指的是它自己。但是在 Bar 类中我希望能够进行空检查log
,我应该改为super.log =
在 Bar.class 中使用吗?