【发布时间】:2013-09-25 21:05:09
【问题描述】:
我有以下代码,其中有一个static counter field 来跟踪创建了多少Parent 对象。当我创建子类的实例时,parent 的计数器也会增加,这是我不希望发生的。有什么帮助吗?
这里是代码
class Parent1 {
private String name;
private int id;
public static int count=0;
public Parent1(String name, int id){
this.name=name;
this.id=id;
count++;
}
}
class Child1 extends Parent1{
private int age;
public Child1(String name, int id, int age){
super(name, id);
this.age=age;
}
}
public class App {
public static void main(String[] args){
Parent1 par= new Parent1("aa",5);
Parent1 par2=new Parent1("bb",10);
System.out.println(Parent1.count);
Child1 chi1= new Child1("aa",5,4);
Child1 chi2=new Child1("bb",5,10);
System.out.println(Child1.count);
}
}
The output is
2
4
【问题讨论】:
-
@paulsm4 所以?这只会使 Child1.count 无效,当他创建一个孩子时它仍然会增加它
-
@paulsm4 那行不通。超构造函数仍将在
Child1中调用,并且计数仍将递增。
标签: java inheritance static subclass super