物件變數多型性 上轉型物件和下轉型物件

2021-10-04 23:33:08 字數 1270 閱讀 7770

上轉型物件

上轉型物件只能訪問父類中宣告的成員變數和成員方法,不可以訪問子類新增的特有的成員變數和成員方法。

如果子類重寫了父類的方法,則上轉型物件呼叫該方法時,必定是呼叫重寫的方法。

如果子類重新定義了父類的同名變數,則上轉型物件應用該變數時是父類中的定義的變數,而不是子類中定義的變數。

下轉型物件

將父類物件賦值給子類物件變數的情況稱為向下轉型。子類物件有上轉型物件,父類變數才可以直接呼叫子類的物件;但是如果父類中沒有下轉型物件,子類變數不能被直接引用父類物件,必須通過強制轉換,將上轉型物件還原回子類物件。

例如:定義乙個dog父類,定義兩個子類ala和keji。

dog類**:

keji類**:

ala類**:

test測試類**:

結果:如果要實現子類,以前需要例項化乙個物件,就像keji

keji=new keji();

再用物件keji呼叫all方法,ala也一樣,非常麻煩。

用上轉型物件可以更簡便的呼叫。

格式:父類類名 父類物件=new 子類類名();

再用父類物件.方法();呼叫方法。

dog dog=new keji(「柯基」,15);

dog.all();

呼叫的是keji類中的all方法,keji類中的all方法還有super.all(),再呼叫了父類dog裡的all方法。

dog=new ala(「阿拉斯加」,1);

將指向keji的具體實現指向ala,然後再呼叫ala類裡的all方法。

如果在keji中再建立乙個子類特有方法

在test測試類中呼叫是會報錯的

所以要用下轉型物件來呼叫

格式為子類類名 子類物件=(子類類名)父類物件;

然後再用子類物件.方法名();呼叫。

在test類中用子類物件呼叫

結果:第一次寫,寫的不好,錯了請指導。

Java多型性和物件的轉型

一 多型 多型指的是同乙個方法呼叫 由於物件不同可能會有不同的行為。現實生活中,同乙個方法,具體實現會完全不同。二 多型的要點 1.多型是方法的多型,不是屬性的多型 多型與屬性無關 2.多型的存在要有三個必要條件 繼承,方法重寫,父類引用指向子類物件。3.父類引用指向子類物件後,用該父類引用呼叫子類...

物件多型性

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

物件導向的多型 多型性

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