多型的核心體現(方法的多型性,物件的多型性)

2021-09-19 09:18:10 字數 963 閱讀 8276

多型的概念:同乙個方法,在不同的情境下會有不同的表現

多型的核心體現主要有以下兩點:

(1)方法的過載

定義:同乙個方法名可以根據引數列表的不同呼叫不同的方法體

(2)方法的覆寫

定義:同乙個父類的方法,可以根據例項化子類的不同也有不同的表現

前提:方法覆寫

(1)物件的向上轉型

父類 父類物件=new 子類();
核心作用:操作引數統一 

class person 

}class student extends person

}class worker extends person

}public class test

public static void whoyouare(person per)

}

(2)物件的向下轉型

什麼時候需要向下轉型:

當父類沒有子類的方法,但又想使用時就向下轉型;

父類 父類物件=new 子類();

子類 子類物件=(子類)父類物件;

要向下轉型必須先向上轉型,這裡存在安全隱患

錯誤示例:

父類 父類物件=new 父類();

子類 子類物件=(子類)父類物件;

這樣是不行的,雖然說兩者有關係,但是前提並沒有發生關係,因而不能強轉,會報錯classcastexception

public class test 

}}class person

}class student extends person

}

類的多型性體現

引用多型 父類的引用可以指向本類的物件 父類的引用指向了自己的子類物件.方法多型 建立本類物件時,呼叫的方法為本類方法.建立子類物件時,呼叫的方法為子類重寫方法或繼承方法.注 不能訪問子類特有的方法 多型的前提 a.類與類之間必須有關係,要麼繼承,要麼實現 implement b.要有重寫 c.父類...

物件導向的多型 多型性

多型指的是一類事物有多種形態,比如水有多種形態 冰 水 水蒸氣,但都是h2o,下面定義乙個h2o的父類和三種形態的子類 class h2o def init self,name,temperature self.name name self.temperature temperature deftu...

物件多型性

基本概念的解釋。多型性的依賴條件是方法的覆寫!觀察如下的乙個程式 class a class b extends a public class test 輸出結果是 b print 一 方法的多型性 1 方法的過載 同乙個方法名稱會根據傳入引數的型別及個數不同執行不同的方法體 2 方法的覆寫 同乙個...