多型中的轉型
多型中的轉型
A:向上轉型
從子到父,父類引用指向子類物件
B:向下轉型
從父到子,父類引用轉為子類物件
/*
多型的弊端:
不能使用子類的特有功能。
我就想使用子類的特有功能?行不行?
行。
怎麼用呢?兩種方法
A方法:建立子類物件呼叫方法即可。(可以,但是很多時候不合理。而且,太佔記憶體了)
//建立子類物件
Zi z = new Zi();
z.show();
z.method();
B方法:把父類的引用強制轉換為子類的引用。(專業名詞:向下轉型)
Fu f = new Zi();
Zi z = (Zi)f;
z.show();
z.method();
物件間的轉型問題:
向上轉型:
Fu f = new Zi();
向下轉型:
Zi z = (Zi)f; //要求該f必須是能夠轉換為Zi的。
*/
class Fu {
public void show() {
System.out.println("show fu");
}
}
class Zi extends Fu {
public void show() {
System.out.println("show zi");
}
public void method() {
System.out.println("method zi");
}
}
class DuoTaiDemo4 {
public static void main(String[] args) {
//測試
Fu f = new Zi();
f.show(); //show zi
//f.method();報錯
//方法一:建立子類物件
//Zi z = new Zi();
//z.show(); //show zi
//z.method(); //method zi
//你能夠把子的物件賦值給父親,那麼我能不能把父的引用賦值給子的引用呢?
//方法二,如下:
Zi z = (Zi)f;
z.show(); //show zi
z.method();//method zi
}
}
相關文章
- 多型,向上向下轉型多型
- java中的多型Java多型
- 多型中的返回值型別多型型別
- 什麼是多型?物件導向中對多型的理解多型物件
- 何為Java 中的多型?Java多型
- java中的型別轉換Java型別
- Python中的繼承和多型Python繼承多型
- 向上轉型和向下轉型
- 組織敏捷轉型中的 HR敏捷
- Java 的多型Java多型
- 多型的概述多型
- C# 泛型中的資料型別判定與轉換C#泛型資料型別
- 多型~多型
- 多型。多型
- 多型多型
- Java中的類繼承與多型Java繼承多型
- JAVA中“多型”案例學習Java多型
- 瞭解JavaScript中的型別轉換JavaScript型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- (譯)js中的神奇的型別轉換JS型別
- 多型的總結多型
- C#中繼承和多型的研究C#中繼繼承多型
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- 多型性多型
- Java多型Java多型
- 11 #### 多型多型
- JS在if中的強制型別轉換JS型別
- 數字化轉型中的規則引擎
- 數字化轉型中的DevOps——左移能力dev
- C++ 表示式中的型別轉換C++型別
- 物件轉型物件
- JS中資料型別轉換JS資料型別
- javascript中隱私型別轉換JavaScript型別
- 多型體驗,和探索爺爺類指標的多型性多型指標
- mysql bigint型別和datetime型別的轉換MySql型別
- php-多型的理解PHP多型
- 使用多型的好處多型
- 多型的機制原理多型
- 資料型別,型別轉換資料型別