static變數是否能繼承詳細介紹

好程式設計師發表於2020-10-15

  好程式設計師 Java 培訓 分享 static 變數 是否 能繼承詳細介紹,文中透過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,下面我們一起來看一下吧。

   程式碼如下

   // 父類

   package com.xujingyang.test;

   public class Father {

   public static String staticString=" 父類中的靜態變數 ";

   public String str=" 父類中的非靜態變數 ";

   public static void staticMethod(){

   System.out.println(" 父類中的靜態方法 ");

   }

   public  void nostaticMethod() {

   System.out.println(" 父類中的非靜態方法 ");

   }

   }

   // 子類

   package com.xujingyang.test;

   public class Son extends Father {

   public static String staticString=" 子類中的靜態變數 ";

   public String str=" 子類中的非靜態變數 ";

   public static void staticMethod(){

   System.out.println(" 子類中的靜態方法 ");

   }

   public  void nostaticMethod() {

   System.out.println(" 子類中的非靜態方法 ");

   }

   }

   // 子類

   package com.xujingyang.test;

   public class A extends Father{

   }

   // 測試方法

   package com.xujingyang.test;

   public class Test {

   public static void main(String[] args) {

   Son son=new Son();

   System.out.println(son.str);

   System.out.println(son.staticString);

   son.staticMethod();

   son.nostaticMethod();

   System.out.println("==============================");

   Father f=new Son();

   System.out.println(f.str);

   System.out.println(f.staticString);

   f.staticMethod();

   f.nostaticMethod();

   System.out.println("==============================");

   A f2=new A();

   System.out.println(f2.str);

   System.out.println(f2.staticString);

   f2.staticMethod();

   f2.nostaticMethod();

   }

   }

   結果如下:

  

   得出如下結論: 父類中的靜態成員變數和方法是可以被子類繼承的 , 但是不能被自己重寫 , 無法形成多型 .

   我發現, 變數時無法形成多型的 , 網上別人說 , 子類把父類的變數繼承過來 , 記憶體中會存在兩個同名的變數 , 父類的變數會出現在子類變數之前 . 如下圖 :

  



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2727047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章