class A1 {
public static void f() {
System.out.println("A1.f()");
}
}
class A2 extends A1 {
public static void f() {
System.out.println("A2.f()");
}
}
class T {
public static void main(String[] args) {
A1 a1 = new A1();
A1 a2 = new A2();
// 靜態方法不具有多態效果,它是根據引用聲明類型來調用
a1.f();// A1.f()
a2.f();// A1.f()
}
}
對靜態方法的調用不存在任何動態的分派機制。當一個程序調用了一個靜態方法,要被調用的方法都是在編譯時就被選定的,即調用哪個方法是根據該引用被聲明的類型決定的。上面程序中a1與a2引用的類型都是A1類型,所以調用的是A1中的f()方法。
原帖地址:http://jiangzhengjun.iteye.com/blog/652748
Java中靜態方法不具有多態性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Filter
矮油不錯哦_ab60
2019-02-24 14:12:49
Spring中你可能不知道的事(二)
CoderBear
2019-02-24 14:10:43
Spring中你可能不知道的事(一)
CoderBear
2019-02-24 14:10:42
三種方式實現觀察者模式 及 Spring中的事件編程模型
CoderBear
2019-02-24 14:10:42
C#中爲什麼會出現空靜態構造方法的寫法
CoderBear
2019-02-24 14:10:42
劍指Spring源碼(一)
CoderBear
2019-02-24 14:10:42
劍指Spring源碼(二)
CoderBear
2019-02-24 14:10:42
有點深度的聊聊JDK動態代理
CoderBear
2019-02-24 14:10:42
簡單的單例模式其實也不簡單
CoderBear
2019-02-24 14:10:42
Volatile的那些事
CoderBear
2019-02-24 14:10:42
【蛻變之路】第6天 面向對象 (2019年2月24號)
仵寧飛
2019-02-24 13:54:39
最新阿里Java技術面試題,看這一文就夠了!
_年少無爲
2019-02-24 13:27:21
Java面試學問多,看看高級程序員面試題是什麼樣的
_年少無爲
2019-02-24 13:27:21
最新Java高級開發工程師面試考綱
_年少無爲
2019-02-24 13:27:20