【发布时间】:2013-06-19 07:44:44
【问题描述】:
如果我们运行派生类,它将打印派生类和父类..有什么办法可以防止静态块的继承?
//第一类
public class parent {
static {
System.out.println("Parent");
}
}
//类2
public class derived extends parent{
static {
System.out.println("derived");
}
public static void main(String [] args) {
}
}
基本上,我在父类中有一些方法,我想继承但不希望在实例化派生类时发生父静态块中发生的处理。 .有什么办法可以做到这一点,否则我将不得不复制代码?
【问题讨论】:
-
“否”是答案。现在,一个问题:你为什么要这样做?
-
似乎是糟糕的设计。是否可以将父级的静态代码重构到其构造函数中?
-
你真的不希望静态初始化器做除了设置常量之外的任何事情。
-
@fge 代码是遗留代码,静态初始化器用于使用 DOMconfiguratgor.configure 配置记录器。由于它是一次性活动,我不能将其放入构造函数中。
-
是的,你可以:创建一个单例!
标签: java inheritance java-6