public class dut{
public static void main(String[] args){
System.out.println(Father.count);
Son.count=9999999;
Father.count=0;
System.out.println(Son.count);
System.out.println(Father.count);
}
}
class Father {
static int count;
}
class Son extends Father{
}
0
0
0父类和子类共用了同一个count变量,这是怎么回事?难道子类继承父类的static类型的属性之后,和父类共用同一个static属性?
无论NEW多少个对象出来 都是共用一个count 这其中也包括子类的对象
因为只有一个 所以无论哪个对象(或子类的对象)改变了这个值,其他的对象中的count(实际上是同一个)也就变咯
public class dut{
public static void main(String[] args){
System.out.println(Father.count);
Son.setCount(9999999);
Father.setCount(0);
System.out.println(Son.getCount());
System.out.println(Father.getCount());
}
}
class Father {
private int count; public void setCount(int intCount){
this.count = intCount;
}
public int getCount() {
return this.count;
}
}
class Son extends Father{
private int count;}不知道这样行不行哈,没有环境
没有办法测试
package csdn.oo;public class TestInstanceCounter { /**
* @param args
*/
public static void main(String[] args) {
Parent p = new Parent();
Child c = new Child(); System.out.println("Parent count: " + Parent.getInstanceCount());
System.out.println("Child count: " + Child.getInstanceCount());
} static class Parent {
private static int counter = 0; public static int getInstanceCount() {
return counter;
} public Parent() {
this(true);
}
public Parent(boolean addInstanceCount) {
if (addInstanceCount) {
counter += 1;
}
}
} static class Child extends Parent {
private static int counter = 0; public static int getInstanceCount() {
return counter;
} public Child() {
super(false);
counter += 1;
}
}
}
{
public static void main(String[] args)
{
System.out.println(Father.count); // 0
Son.count=9999999;
Father.count=10;
System.out.println(Son.count);
System.out.println(Father.count);
}
}
class Father
{
static int count;
}
class Son extends Father
{}0
10
10楼主明白了么
public static void main(String[] args){
System.out.println(Father.count);
Son.count=9999999;
Father.count=0;
Son.count=9999999;
System.out.println(Son.count);
System.out.println(Father.count);
}
}
class Father {
static int count; }
class Son extends Father{ }
0
9999999
9999999
这个样子有说服力些