1.多型性的理解
可以理解為乙個事物的多種形態
2.何為多型性
物件的多型性:父類的引用指向子類的物件(或子類的物件賦給父類的應用)
person p = new man()
object obj = new date();
3.多型性的使用 虛擬方法的呼叫
有了物件的多型性以後,我們在編譯期,只能呼叫父類中宣告的方法,但在執行期,我們執行的時子類重寫父類的方法。
總結:編譯看左邊,執行看右邊
4.多型性的使用前提;
1.類的繼承關係 2.方法的重寫
5.多型性的應用舉例
舉例一public void func(animal animal)
舉例二public void method(object obj)
舉例三class driver
6.多型性的使用注意點
物件的多型性只適用於方法,不作用於屬性
//有物件的多型性以後,記憶體中實際上是載入了子類特有屬性和方法的,但是由於變數宣告為父類型別
7.為什麼使用向下轉型
有了物件的多型性以後,記憶體中實際上載入了子類特有的屬性和方法的,但是由於變數宣告為父類型別,導致編譯時只能嗲用父類中宣告的屬性和方法,子類特有的屬性和方法不能 呼叫,如何才能呼叫子類特有的屬性和方法?使用向下轉型。
7.2.2如何事項向下轉型
使用強制型別轉換 ()
7.2.3使用時的注意點
使用強轉時可能楚現classcastexception的異常
為了避免先使用instanceof的判斷,一旦返回true就進行向下轉型,如果返回false不進行向下轉型?
7.2.4 instanceof的使用
1.a instanceof a 判斷物件a 是否是類a的例項,如果是返回true,如果不是返回false
2 如果 a instanceof a 返回true ,則 a instanceof b 也返回true 其中 類b是類a的父類
8.面試題
1.談談你多型性的 理解
2.多型是編譯時行為還是執行時行為
物件導向(三) 多型
多型是物件導向三大特性中比較難理解的乙個概念,但並不複雜!在這裡介紹下有關多型的概念以及相關用法。多型可以理解為對於同乙個方法,根據不同的物件產生不同的結果。光說肯定很抽象,下面用個例子去解釋多型。例子 package com.zzl.polymorphism public class polymo...
物件導向的多型 多型性
多型指的是一類事物有多種形態,比如水有多種形態 冰 水 水蒸氣,但都是h2o,下面定義乙個h2o的父類和三種形態的子類 class h2o def init self,name,temperature self.name name self.temperature temperature deftu...
物件導向之多型 多型性
一 多型 多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態...