java物件轉型詳解

2021-08-22 08:27:42 字數 1714 閱讀 7139

物件轉型(casting):好處可以增強程式的可擴充套件性。

1)乙個基類的引用型別變數可以「指向」其子類的物件。

2)乙個基類的引用不可以訪問其子類物件新增的成員(屬性和方法)。

3)可以使用 引用 變數instanceof類名 來判斷該引用型變數所「指向」的物件是否屬於該類或該類的子類。

4)子類的物件可以當作基類的物件來使用稱作向上轉型(upcasting),反之稱為向下轉型(downcasting)。

(1)釋例一:演示物件轉型(驗證上面四條)

/**

* 說明:父類

* * @author huayu

* @date 2018/8/6 1:00 pm

*/public class animal

}/**

* 說明:用於演示物件轉型,pig類

* * @author huayu

* @date 2018/8/6 1:01 pm

*/public class pig extends animal

}package oop;

/** * 說明:用於演示物件轉型,tiger類

* * @author huayu

* @date 2018/8/6 1:03 pm

*/public class tiger extends animal

}import oop.animal;

import oop.pig;

import oop.tiger;

/** * 說明:用於演示物件轉型,測試類

* * @author huayu

* @date 2018/8/6 1:08 pm

*/public class testcasting

}測試類輸出結果:

true

true

true

false

tigername

true

true

white

為了能讓大家更好的理解 1.system.out.println(animal.furcolor); //!error  這一句,我對animal=new tiger("tigername","white");這一句做了乙個記憶體分析圖,希望可以有助於大家的理解:

執行句2tiger tiger1=(tiger) animal;後的記憶體分布圖:

(2)釋例二:用於演示物件轉型對程式可擴充套件性的有利影響

import oop.animal;

import oop.pig;

import oop.tiger;

/** * 說明:用於演示物件轉型擴充套件性,測試類

* 以上animal,pig,tiger的類依然沿用釋例一部分的

* @author huayu

* @date 2018/8/6 1:08 pm

*/public class testcasting

public void f(animal animal)else if(animal instanceof tiger)}}

Java物件轉型

物件轉型 1 乙個基類的引用型別變數可以 指向 其子類的物件。2 乙個基類的引用不可以訪問其子類物件新增加的成員 屬性和方法 3 可以使用 引用變數 instanceof 類名 來判斷該引用型變數所 指向 的物件是否屬於該類或該類的子類。4 子類的物件可以當做基類的物件來使用稱作向上轉型 upcas...

java之上轉型物件

1.上轉型物件 上轉型物件是將子類的物件賦值給父類的引用,形如 superclass sup subclass 上轉型物件不能使用子類新增成員 包括成員變數,成員方法 只能使用子類重寫父類的方法,被子類隱藏的父類變數 子類未重寫的父類方法,未被隱藏的父類成員變數.示例運用 多型的運用 假如你在乙個物...

java 物件的轉型

為什麼要寫這篇部落格 物件的轉型是物件導向多型性的體現,必須深刻理解。向上轉型 父類引用指向子類物件 person p new student 向下轉型 將 指向子類物件的父類引用 強制轉換為子類引用 person p new student student s student p 乙個引用能夠呼叫...