可以理解為事物存在的多種體現形態,多型的出現大大的提高程式的擴充套件性,當然有利必有弊,雖然提高了擴充套件性,但是只能使用父類的引用訪問父類中的成員。
多型體現在程式裡就是父類的引用指向了自己的子類物件,即父類的引用也可以接收自己的子類物件。
格式:父類名 物件名=new 子類名()。
這裡有個前提是必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提是存在成員方法覆蓋(並非必須)。
既然出現了父子類,多型勢必和繼承是有關聯的,在使用時關鍵點自然也是兩個類中的變數方法是如何呼叫的。總結有以下規則:
1.用物件呼叫的變數和函式,必須是父類自己具有的,否則編譯不能通過。
2.靜態成員和非靜態的成員變數,(或者說成員變數和靜態函式)物件呼叫的都是父類的。
3.非靜態的成員函式,物件呼叫的是子類的。如果父類有而子類沒有,那麼就等同於呼叫父類自己的。
看了上面的規則後會明白上面為什麼說存在成員方法覆蓋並非必須的,但是如果沒有非靜態成員方法覆蓋的話,用多型也就沒什麼意義了:物件可以呼叫的全是父類的東西。
下面看乙個**示例:
public class test1
public static void sop(object obj)
} class fu
void furun2()
static void staticrun()
}class zi extends fu
void zirun()
static void staticrun()
} 執行結果為
1 10
zi run
fu2 run
fu staitc run
JAVA基礎之多型
多型。物件導向的第三個特徵 多型。多型 指某種事物的多種存在形態。物件的多型性 比如,貓這個事物,也可叫做物件。他肯定具備貓的基本特徵,同時也具有動物的基本特徵。這就是貓的多型性,物件的多型性。簡單的意思就是 乙個物件對應著不同的型別。那麼多型在 中的體現形式就是 父類 動物 或者介面的引用指向其子...
JAVA基礎之多型
一 定義 允許不同類的物件對同乙個訊息做出不同的響應 比如你是乙個酒神,對酒情有獨鍾。某日回家發現桌上有幾個杯子裡面都裝了白酒,從外面看我們是不可能知道這是些什麼酒,只有喝了之後才能夠猜出來是何種酒。你一喝,這是劍南春 再喝這是五糧液 再喝這是酒鬼酒 在這裡我們可以描述成如下 酒 a 劍南春 酒 b...
Java基礎之多型
1.多型的條件 1.繼承 2.方法的重寫 3.父類引用指向子類物件 2.多型中成員和成員方法的訪問特點 1.成員 編譯看左邊 父類 執行看左邊 父類 2.成員方法 編譯看左邊 父類 執行看右邊 子類 public class demo09 polymorphic class father class...