定义一个A类,
A{
private static int sum=0;
public static void addAuto(){sum=sum+10;}
}
然后定义B和C类,B extends A{}, C extends A{}; B和C类和A相同。
这是我们用A的对象引用B C的对象(根据多态性):
A a1=new B();A a2=new C();
a1.addAuto();System.out.println(a1.sum);//结果为10
a2.addAuto();System.out.println(a2.sum);//结果为20 ???
每调用一次addAuto就会加10
因为你用的是A的对象引用的
private static int sum=0;
sum是静态的啊,它会保留上一次执行的结果
换句话说,sum这个变量并不是在a1和a2里的,它就是在A里的,全局只有1个