Java多型性以及上下轉型

2021-05-21 14:57:54 字數 594 閱讀 8824

問:老虎是動物嗎?那麼動物是老虎嗎?

答:老虎當然是動物,動物不一定是老虎。 [廢話]

現在你明白了,原來是這樣:

向上轉型:把乙個具體的物種的例項歸為總的動物類。即: 動物 動物例項 = new 具體物種();

向下轉型:把乙個總的動物例項歸為乙個具體的物種。

用**來說事吧:

動物類:

老虎類 繼承  動物類

獅子類 繼承 動物類

廣告1:向上轉型總是能成功的。只給一句**

animal animal = new tiger(); 

向上轉型:upcasting - 父類引用接受子類例項 [不會報錯 + 不用強轉]  /

問題1:我們可以把乙個動物類的例項交給老虎類嗎? [直接向下轉型]

tiger tiger = new animal(); //轉型能成功嗎?

-------------哈哈,你猜著了嗎? 答案是:不會成功。

這是為什麼呢?

問題2:既然我們可以用動物類接收乙個老虎類例項,那麼能把這個接收了老虎類例項的動物類引用再轉成獅子類嗎?

問題3:那我們如何才能把動物類引用賦給具體某乙個物種呢?

Java多型性和物件的轉型

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

java的多型性

public class duotaitest class 子類 extends 父類 父類 物件名 new 子類 2.抽象類多型 還算常用 abstract class 父類 class 子類 extends 父類 父類 物件名 new 子類 3.介面多型 非常常用 inte ce 父類 clas...

java的多型性

多型包括重寫 override 和過載 overload 重寫發生在超類和子類之間,子類覆蓋超類的方法。過載發生在同乙個類中,方法名字相同,方法的形式引數和返回值不同。執行 如下 package com.base.oo class a public string show a obj class b...