JAVA中pin什么意思_java语言中的多态概述
多態(tài):一個(gè)對象相應(yīng)著不同類型
多態(tài)在代碼中的體現(xiàn):父類或接口的引用指向其子類對象。
多態(tài)的優(yōu)點(diǎn):
提高了代碼的擴(kuò)展性,前期定義的代碼能夠使用后期的內(nèi)容。
多態(tài)的弊端:
前期定義的內(nèi)容不能使用后期子類中定義的特有內(nèi)容。
多態(tài)的前提:
1,必須有關(guān)系,(繼承。實(shí)現(xiàn))。
2,要有覆蓋。
Animal a =new Cat();
自己主動(dòng)類型提升,貓對象提升了動(dòng)物類型。可是特有功能無法訪問。能夠限制對特有功能的訪問。
專業(yè)講:向上轉(zhuǎn)型。將子類型隱藏。就不能使用子類的特有方法。
假設(shè)還想用詳細(xì)動(dòng)物貓的特有功能,能夠?qū)⒃搶ο筮M(jìn)行向下轉(zhuǎn)型。目的是為了使用子類中的特有方法。
Cat c = (Cat) a;
注意:對于轉(zhuǎn)型,自始至終都是子類對象在做著類型的變化。
if (a instanceof Cat){
Cat c=(Cat) a;
}
instanceof:用于推斷對象的詳細(xì)類型(類或是接口)。僅僅能用于引用數(shù)據(jù)類型推斷。
通常在向下轉(zhuǎn)型前用于健壯性的推斷。
多態(tài)時(shí),成員的特點(diǎn):
1。成員變量
編譯時(shí):參考引用型變量所述的類中是否有調(diào)用的成員變量,有,編譯通過,沒有編譯失敗。
執(zhí)行時(shí):參考引用型變量所述的類中是否有調(diào)用的成員變量,并執(zhí)行該所屬類中的成員變量。
簡單說:編譯和執(zhí)行都參考等號左邊。
2,成員函數(shù)(重點(diǎn))非靜態(tài)
編譯時(shí):參考引用型變量所述的類中是否有調(diào)用的成員函數(shù),有,編譯通過,沒有編譯失敗。
執(zhí)行時(shí):參考的是對象所述的類中是否有調(diào)用的函數(shù)。動(dòng)態(tài)綁定
簡單說:編譯看左邊,執(zhí)行看右邊。
樣例:
class Outer
{
void method(){
Object obj =new Object(){
public void show(){
System.out.println("show run");
}
};
obj.show();//錯(cuò)誤提示,找不到符號
//由于匿名內(nèi)部類這個(gè)子類對象被向上轉(zhuǎn)型成了Object類型。這樣就不能再使用子類的特有方法了
}
}
class InnerClass
{
public static void main(String [] args)
{
new Outer().method();
}
}
3,靜態(tài)函數(shù)
編譯時(shí):參考引用型變量所述的類中是否有調(diào)用的靜態(tài)方法,有,編譯通過。沒有編譯失敗。
執(zhí)行時(shí):參考引用型變量所述的類中是否有調(diào)用的靜態(tài)方法。
簡單說:編譯和執(zhí)行都看左邊。
事實(shí)上對于靜態(tài)方法,是不須要對象的。直接用類名調(diào)用就可以。
總結(jié)
以上是生活随笔為你收集整理的JAVA中pin什么意思_java语言中的多态概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 能够降低85%的能耗 IBM和三星的新芯
- 下一篇: java typereference_记