應用於 Java 靜態方法的限制
如果將 static 關鍵字應用於任何方法,則它將成為一個靜態方法。
如果一個方法被宣告為靜態的,則它是一個類的成員,而不是屬於該類的物件。可以呼叫它而不建立該類的物件。靜態方法還具有訪問該類中靜態資料成員的能力。
對靜態方法施加了一些限制
靜態方法不能直接使用非靜態資料成員或呼叫非靜態方法。
this 和 super 不能在靜態上下文中使用。
靜態方法只能訪問靜態型別資料(靜態型別例項變數)。
無需建立該類的物件即可呼叫靜態方法。
靜態方法不能在子類中被覆蓋
讓我們看看在子類中嘗試覆蓋靜態方法時會發生什麼
示例
class Parent {
static void display() {
System.out.println("Super class");
}
}
public class Example extends Parent {
void display() // trying to override display() {
System.out.println("Sub class");
}
public static void main(String[] args) {
Parent obj = new Example();
obj.display();
}
}這會產生一個編譯時錯誤。輸出如下所示 −
Example.java:10: error: display() in Example cannot override display() in Parent void display() // trying to override display() ^ overridden method is static 1 error
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP