物件導向的特徵三 多型性

2021-09-27 00:26:36 字數 1040 閱讀 3233

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 動物的形態...