子類可否重寫父類的靜態方法

今天忽然討論到了子類繼承父類的靜態方法問題,有人堅持說能寫,有人說不能重寫,那到底能不能衝寫呢?這個問題很簡單,測試一下就完了。java

     先是父類代碼:app

 

[java] view plain copy測試

  1. public class Fu {  
  2.     public static void show() {  
  3.         System.out.println("父類的靜態方法");  
  4.     }  
  5.     public void method() {  
  6.         System.out.println("父類的通常方法");  
  7.     }  
  8. }  

     下面是子類代碼:spa

 

 

[java] view plain copy.net

  1. public class Zi extends Fu {  
  2.     public static void main(String[] args) {  
  3.         Fu fu = new Zi();  
  4.         fu.show();  
  5.         fu.method();  
  6.     }  
  7.     public static void show() {  
  8.         System.out.println("子類的靜態");  
  9.     }  
  10.     public void method() {  
  11.         System.out.println("子類的通常方法");  
  12.     }  
  13.       
  14. }  

       輸出結果是:對象

 

      父類的靜態方法
      子類的通常方法blog

       來講一下個人觀點,父類的靜態方法不能被子類繼承,更談不上重寫,就算是子類中有一個和父類如出一轍的靜態方法,那也是子類自己的,和父類的那個靜態方法不是一回事。方法加靜態後就屬於類不屬於對象了。繼承

 

      8月3號追加:因爲上次問題討論引起不少人的積極性,最後的獲得了你們都認同的結果,上面是本人以前的觀點,有些錯誤,下面是最終討論結果:父類的靜態方法能夠被子類繼承,可是不能重寫。這個結果最後你們都接受了。ip

相關文章
相關標籤/搜索