關(guān)于靜態(tài)方法跟main()方法的繼承跟重寫問題?求大神解惑!
靜態(tài)方法和main()方法能繼承和重寫嗎?看到問答區(qū)中有人說不能,但是自己上eclipse嘗試的時候好像是可以的,可以看看下面的代碼!
//父類A
package com.shiyan2;
public class A {
? ? ?public static void print(){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //想要被繼承的靜態(tài)方法
? ? System.out.println("執(zhí)行了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("調(diào)用了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("調(diào)用了重寫后的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()方法的調(diào)用
b.print(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//對print的調(diào)用
}
}
??//然后這個格式也很奇怪啊,main中還有main?,一個程序不是只能一個主路口嗎?
2015-10-06
第一 你子B類的main方法并不是繼承的A類的main方法 而是自己的main方法 所以也不存在重寫的問題
第二 測試類中的入口就是測試類中的main方法, 你在方法中調(diào)用別的類的重名方法不是很正常的事嗎 ?不存在兩個入口的問題,
2015-10-18
靜態(tài)方法能夠被繼承,但是不能被重寫,存在一模一樣的靜態(tài)方法只能說是把父類的方法給隱藏了,并不是被重寫??!
2015-10-06
我說錯了 靜態(tài)函數(shù)只能被靜態(tài)函數(shù)覆蓋,也就是重寫!
2015-10-06
靜態(tài)函數(shù)只能被靜態(tài)函數(shù)繼承