子类与父类static方法调用顺序(2)
来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 11:49 点击:次
private Son() {
// TODO Auto-generated constructor stub
}
private static Son son ;
public static Son getInstance(){
if (son == null){
son = new Son();
}
return son;
}
}
然后调用:
Java代码
Parent son1 = Son.getInstance();
son1.staticmethod();
son1.say();
Son son2 = Son.getInstance();
son2.staticmethod();
son2.say();
System.out.println(son1 == son2);
Parent p1 = new Parent();
p1.staticmethod();
p1.say();
输出:
Java代码
parent
this is son
son
this is son
true
parent
this is parent
及 son1 == son2,区别只是引用不同,输出结果与第一次测试相同
由此说明: 子类不能覆盖或者重写父类 静态函数,如果有同名且声明相同的函数,这不是覆盖。
对象存储在 堆 区域中,static存储在静态存储区,当程序执行,类的代码被加载到内存,类的静态变量就分配了内存空间,他是属于类的也就是没个实例对象都是对于以个静态变量,静态变量的内存空间知道程序退出才释放所占用的内存空间
- 发表评论
-
- 最新评论 更多>>