wswzh0329
2015-10-05 21:57
静态方法和main()方法能继承和重写吗?看到问答区中有人说不能,但是自己上eclipse尝试的时候好像是可以的,可以看看下面的代码!
//父类A
package com.shiyan2;
public class A {
public static void print(){ //想要被继承的静态方法
System.out.println("执行了A类的pring方法!");
}
public static void main(String[] args) { //想要被继承的main()方法
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
System.out.println("调用了A类的main方法");
}
}
//子类B
package com.shiyan2;
public class B extends A {
/*public static void print(){ //对print方法的重写
System.out.println("父类中print方法的重写");
}*/
/* public static void main(String[] args) { //对main()方法的重写
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
System.out.println("调用了重写后的A类的main方法");
}*/
}
//测试类
package com.shiyan2;
public class Initial {
public static void main(String[] args) {
B b=new B(); //实例化的是子类的对象
String str[]={"1","2","3","4"};
b.main(str); //对main()方法的调用
b.print(); //对print的调用
}
}
//然后这个格式也很奇怪啊,main中还有main ,一个程序不是只能一个主路口吗?
第一 你子B类的main方法并不是继承的A类的main方法 而是自己的main方法 所以也不存在重写的问题
第二 测试类中的入口就是测试类中的main方法, 你在方法中调用别的类的重名方法不是很正常的事吗 ?不存在两个入口的问题,
静态方法能够被继承,但是不能被重写,存在一模一样的静态方法只能说是把父类的方法给隐藏了,并不是被重写!!
我说错了 静态函数只能被静态函数覆盖,也就是重写!
静态函数只能被静态函数继承
Java入门第二季 升级版
530562 学习 · 6091 问题
相似问题