Java語言中多態(tài)屬于面向?qū)ο蟮娜筇匦灾唬蛳罗D(zhuǎn)型屬于多態(tài)中一個比較重要的知識點。下面我將通過文章為大家介紹一下多態(tài)中關(guān)于向下轉(zhuǎn)型的知識,并用Java實例代碼展示具體使用方法。
1、概念
向下轉(zhuǎn)型就是父類對象轉(zhuǎn)成子類對象。我們把一個父類引用 Animal類型的引用 給了一個 Bird類型 的引用,這就是向下轉(zhuǎn)型
2、格式
子類 子類對象=(子類)父類實例
3、注意
向下轉(zhuǎn)型的時候一定要進(jìn)行強(qiáng)制類型轉(zhuǎn)換
4、實例
class Animal {
public String name;
public void eat() {
System.out.println(this.name + " 正在吃");
}
}
class Cat extends Animal {
}
class Bird extends Animal {
public int age;
public void fly() {
System.out.println(this.name+"起飛");
}
}
public class Test extends TestDemo {
public static void main(String[] args) {
Animal animal = new Animal();
Bird bird = (Bird) animal;//必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換
}
}
Java向下轉(zhuǎn)型的意義
一開始學(xué)習(xí) Java 時不重視向下轉(zhuǎn)型。一直搞不清楚向下轉(zhuǎn)型的意義和用途,不清楚其實就是不會,那開發(fā)的過程肯定也想不到用向下轉(zhuǎn)型。
其實向上轉(zhuǎn)型和向下轉(zhuǎn)型都是很重要的,可能我們平時見向上轉(zhuǎn)型多一點,向上轉(zhuǎn)型也比較好理解。
但是向下轉(zhuǎn)型,會不會覺得很傻,我是要用子類實例對象,先是生成子類實例賦值給父類引用,在將父類引用向下強(qiáng)轉(zhuǎn)給子類
引用,這不是多此一舉嗎?我不向上轉(zhuǎn)型也不向下轉(zhuǎn)型,直接用子類實例就行了。
我開始學(xué)習(xí)Java時也是這么想的,這誤區(qū)導(dǎo)致我覺得向下轉(zhuǎn)型就是沒用的。
隨著技術(shù)的提升,我在看開源的項目學(xué)習(xí),發(fā)現(xiàn)很多地方都用了向下轉(zhuǎn)型的技術(shù),這就讓我重視了起來,想要重新來復(fù)習(xí)(學(xué)習(xí))這個知識點。也是搜索了許多博客文章,但都沒具體說明向下轉(zhuǎn)型,只是給了例子演示怎么使用,反而是向上轉(zhuǎn)型講了一堆(可能是我沒找到)。
到此這篇關(guān)于 Java 面向?qū)ο笾卸鄳B(tài)特性的向下轉(zhuǎn)型基礎(chǔ)知識和代碼展示的文章就介紹到這了,想要了解更多相關(guān) Java 面向?qū)ο蟮闹R或多態(tài)其他方面的內(nèi)容請搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持我們!