今天突然討論到了子類繼承父類的靜態方法問題,有人堅持說能寫,有人說不能重寫,那到底能不能沖寫呢?這個問題很簡單,測試一下就完了。
先是父類代碼:
1
2
3
4
5
6
7
8
|
public class Fu { public static void show() { System.out.println( "父類的靜態方法" ); } public void method() { System.out.println( "父類的一般方法" ); } } |
下面是子類代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Zi extends Fu { public static void main(String[] args) { Fu fu = new Zi(); fu.show(); fu.method(); } public static void show() { System.out.println( "子類的靜態" ); } public void method() { System.out.println( "子類的一般方法" ); } } |
輸出結果是:
1
2
|
父類的靜態方法 子類的一般方法 |
來說一下我的觀點,父類的靜態方法不能被子類繼承,更談不上重寫,就算是子類中有一個和父類一模一樣的靜態方法,那也是子類本身的,和父類的那個靜態方法不是一回事。方法加靜態后就屬于類不屬于對象了。
追加:由于上次問題討論引發很多人的積極性,最后的得到了大家都認同的結果,上面是本人之前的觀點,有些錯誤,下面是最終討論結果:父類的靜態方法可以被子類繼承,但是不能重寫。這個結果最后大家都接受了。
以上就是本文關于Java編程子類能否重寫父類的靜態方法探索的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,歡迎大家交流討論。感謝朋友們對服務器之家網站的支持!
原文鏈接:http://blog.csdn.net/kdc18333608478/article/details/52040914