子类与父类static方法调用顺序
来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 11:49 点击:次
Java代码
第一次测试:
父类:
public class Parent {
protected static void staticmethod(){
System.out.println("parent");
}
protected void say(){
System.out.println("this is parent");
}
}
Java代码
子类:
public class Son extends Parent {
@Override
protected void say() {
// TODO Auto-generated method stub
System.out.println("this is son");
}
protected static void staticmethod(){
System.out.println("son");
}
}
调用:
Java代码
Parent son1 = new Son();
son1.staticmethod();
son1.say();
Son son2 = new Son();
son2.staticmethod();
son2.say();
Parent p1 = new Parent();
p1.staticmethod();
p1.say();
输出结果:
Java代码
parent
this is son
son
this is son
parent
this is parent
即为: 父类的 static 方法 子类不能覆盖,但是子类能与父类有相同说明的static方法,
如上:protected static void staticmethod(),
但是
Java代码
son1.staticmethod()
输出
parent
同时
Java代码
son2.staticmethod();
输出
son
第二次测试:
修改子类:
Java代码
public class Son extends Parent {
@Override
protected void say() {
// TODO Auto-generated method stub
System.out.println("this is son");
}
protected static void staticmethod(){
System.out.println("son");
}
第一次测试:
父类:
public class Parent {
protected static void staticmethod(){
System.out.println("parent");
}
protected void say(){
System.out.println("this is parent");
}
}
Java代码
子类:
public class Son extends Parent {
@Override
protected void say() {
// TODO Auto-generated method stub
System.out.println("this is son");
}
protected static void staticmethod(){
System.out.println("son");
}
}
调用:
Java代码
Parent son1 = new Son();
son1.staticmethod();
son1.say();
Son son2 = new Son();
son2.staticmethod();
son2.say();
Parent p1 = new Parent();
p1.staticmethod();
p1.say();
输出结果:
Java代码
parent
this is son
son
this is son
parent
this is parent
即为: 父类的 static 方法 子类不能覆盖,但是子类能与父类有相同说明的static方法,
如上:protected static void staticmethod(),
但是
Java代码
son1.staticmethod()
输出
parent
同时
Java代码
son2.staticmethod();
输出
son
第二次测试:
修改子类:
Java代码
public class Son extends Parent {
@Override
protected void say() {
// TODO Auto-generated method stub
System.out.println("this is son");
}
protected static void staticmethod(){
System.out.println("son");
}
- 发表评论
-
- 最新评论 更多>>