Java中父类的静态变量和静态方法的继承问题
1.普通父類的靜態變量和方法,可以通過子類的名稱訪問和調用
2.普通父類的靜態變量和方法,可以通過子類的實例對象訪問和調用
3.抽象父類的靜態變量和方法,可以通過具體子類的名稱訪問和調用
4.抽象父類的靜態變量和方法,可以通過具體子類的實例對象訪問和調用
5.接口的靜態變量,可以通過實現類的名稱訪問
6.接口的靜態變量,可以通過實現類的實例對象訪問
7.接口的靜態方法,不可以通過實現類的名稱調用
8.接口的靜態方法,不可以通過實現類的實例對象調用
9.接口的靜態方法,只能通過“接口名稱.靜態方法名”進行調用
注:
1.可以通過子類的名稱訪問父類的靜態變量,這個語句在編譯的時候會被替換成“父類名稱.靜態變量名”
2.可以通過子類的實例訪問父類的靜態變量,這個語句在編譯的時候會被替換成“父類名稱.靜態變量名”
3.可以通過子類的實例訪問父類的靜態方法,這個語句在編譯的時候會被替換成“父類名稱.靜態方法名”
總結:
為什么在繼承關系中,可以通過子類的類名或者子類的對象去訪問父類的靜態變量和靜態方法,因為繼承關系屬于單繼承,所以可以明確地找到父類的靜態變量和靜態方法。但是接口的實現關系不是單繼承關系,而是多繼承關系,一個實現類可以同時實現多個不同的接口,如果不同接口存在相同的靜態變量和靜態方法,那么通過實現類的對象或者實現類的類名去調用接口類的靜態方法,根本無法明確調用哪個方法,所以無法通過實現類的類名或者對象去調用接口的靜態方法。
但是為什么可以通過實現類的類名和對象訪問接口的靜態變量呢?這點我也覺得很奇怪,但是多個接口存在相同靜態變量的時候,也是報編譯錯誤的,如果多個接口并沒有存在相同的靜態變量,則不會報編譯錯誤。但是接口的靜態方法則怎樣都不行。
總結
以上是生活随笔為你收集整理的Java中父类的静态变量和静态方法的继承问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: etc怎么安装在车上的?
- 下一篇: 宝呗青年体验金可以用多久?