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