java的多态是什么意思_Java中的多态是什么?
不同的行為特征。而造成這一現象的原因在于Java中的變量有兩個類型:
編譯時類型,由聲明變量時的類型決定。
運行時類型,由實際賦值給變量的對象的類型決定,當一個變量的兩個類型不一致,就會出現多態。
//BaseClass是SubClass的父類
BaseClass a = new BaseClass();
BaseClass b = new SubClass();
//變量a調用baseMethod()方法,實際上會調用BaseClass的baseMethod()方法,會打印111
a.baseMethod()
//變量b調用baseMethod方法,實際上會調用SubClass的重寫baseMethod()方法,會打印222
b.baseMethod()
Class BaseClass {
void baseMethod() {
System.out.println("111");
}
}
Class SubClass {
void baseMethod() {
System.out.println("222");
}
}
輸出結果:
111
222
例如這個例子中,
對于變量a而言
a的編譯類型是BaseClass,實際類型也是BaseClass,所以調用baseMethod()會執行BaseClass#baseMethod()方法,打印出111。
對于變量b而言
b的的編譯類型是BaseClass,但是實際賦值時,給變量b賦值的是SubClass對象,所以b的實際類型是SubClass。而SubClass重寫了父類BaseClass#baseMethod()方法,所以調用baseMethod()方法會調用SubClass#baseMethod(),從而打印出222。
a和b的編譯類型相同,卻展現出了不同的行為特征,這就是多態。
(PS:如果直接對b調用只有SubClass有的方法,編譯時會報錯,但是可以通過反射進行調用。)
原創文章,作者:9IM,如若轉載,請注明出處:https://www.9im.cn/411.html
總結
以上是生活随笔為你收集整理的java的多态是什么意思_Java中的多态是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crmeb单商户java版安装_前端配置
- 下一篇: java计算器布局设计_Java图形化界