您好,登錄后才能下訂單哦!
本篇內容介紹了“Java中static變量能不能繼承”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
今天研究了一下被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(); }}
結果如下:
得出如下結論:父類中的靜態成員變量和方法是可以被子類繼承的,但是不能被自己重寫,無法形成多態.
我發現,變量時無法形成多態的,網上別人說,子類把父類的變量繼承過來,內存中會存在兩個同名的變量,父類的變量會出現在子類變量之前.
“Java中static變量能不能繼承”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。