Java 向上类型转换与向下类型转换的理解【复习】
今天在回顧 Java 知識的時候碰到了這個知識點,正好重新鞏固一下。
在面向?qū)ο缶幊讨?#xff0c;因為子類與父類存在繼承關(guān)系,所以對象類型存在著轉(zhuǎn)換,包括向上類型轉(zhuǎn)換和向下類型轉(zhuǎn)化。
1.向上類型轉(zhuǎn)換是指將子類對象的引用轉(zhuǎn)化為父類對象的引用,用個例子說明一下:
//父類: public class ParentClass {public void print() {System.out.println("父類方法");} } // 子類 public class ChildClass extends ParentClass{public void print() {System.out.println("子類方法");}public void childMethod() {System.out.println("只在子類中定義的方法 ");}public static void main(String[] args) {ParentClass p = new ChildClass();p.print();}}輸出結(jié)果為:
子類方法也就是子類的 print() 方法重寫了父類的方法,所以輸出的是子類的 print()
“子類對象的引用轉(zhuǎn)化為父類對象的引用” 這句話
等號右邊new ChildClass()就是子類對象的引用
將等號右邊的東西賦值給等號左邊,就是轉(zhuǎn)化為父類對象的引用
這樣應該明白這句話了吧
當我們在寫 p. 什么東西的時候,編輯器自動彈出的只有 print()這個方法,而沒有childMethod()這個方法,所以,這個向上類型轉(zhuǎn)換的意思就是子類向上類型轉(zhuǎn)化成父類的對象,如果子類重寫了父類的方法,輸出結(jié)果是子類重寫的方法,如果父類中沒有的方法,而在子類中存在的方法是不可以調(diào)用的,歸根結(jié)底一句話,父親有的東西你才能調(diào)用,父親給你留下的你怎么修改是你的事
2.向下類型轉(zhuǎn)換是指將父類對象的引用轉(zhuǎn)化為子類對象的引用
直接看例子吧,對比著向上類型轉(zhuǎn)換理解
輸出結(jié)果:
父類方法 父類方法 只在子類中定義的方法再說明一下 向下類型轉(zhuǎn)換:一個已經(jīng)向上轉(zhuǎn)型的子類對象可以使用強制類型轉(zhuǎn)換的格式,將父類引用類型轉(zhuǎn)為子類引用類型
有的同學問了,問啥不直接這樣寫:
ChildClass child = new ParentClass();問的好,因為,我們并不能保證子類的方法父類一定有是吧,所以要按照上面的例子那樣寫。
總結(jié)
以上是生活随笔為你收集整理的Java 向上类型转换与向下类型转换的理解【复习】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android --- BaseQuic
- 下一篇: 青少年蓝桥杯_2020_steam考试_