java-接口与多态-
枚舉
只要switch(XX) 里面的XX是個(gè)枚舉類型,那么里面的case 只有 那幾個(gè)已經(jīng)在枚舉里預(yù)定義的變量可以選,
子類轉(zhuǎn)父類(向上轉(zhuǎn)型)
父類轉(zhuǎn)子類(向下轉(zhuǎn)型)
父類轉(zhuǎn)子類,有的時(shí)候行,有的時(shí)候不行,所以必須進(jìn)行強(qiáng)制轉(zhuǎn)換。
自己設(shè)置的實(shí)驗(yàn)
我的疑惑是:
這個(gè)hero的地址值和我的子類adHero 的地址值是一模一樣的, 那為何這個(gè)hero就看不見它子類的東西呢,都是同個(gè)地址!!
按照個(gè)人理解來說:hero=adHero ; 左邊的hero的引用類型 和 右邊adHero的引用類型 不一樣。 那么為什么能 將adHero 賦值給一個(gè)不同類型的hero 呢
既然是賦值,明明是將子類賦值給了父類 。為什么能說是子類轉(zhuǎn)父類的 。 難道是 先將子類的引用 上轉(zhuǎn)型成父類的引用,然后復(fù)制給hero ,似乎能解釋得通,
但奇怪的是,從打印結(jié)果來說,復(fù)制后,父類引用的地址和子類引用的地址一模一樣了。那這樣轉(zhuǎn)不轉(zhuǎn)型 和 用原本子類引用的地址有什么區(qū)別,
==================================================
============================================
自己出的題
父類.java
public class Hero {public String name = "來自父類的字段";public void effect(){System.out.println("來自父類的方法");} }子類.java
public class ADHero extends Hero {public String name = "來自子類的字段";public void effect(){System.out.println("來自子類的方法");} }Test.java
轉(zhuǎn)載于:https://www.cnblogs.com/czy16/p/8952006.html
總結(jié)
以上是生活随笔為你收集整理的java-接口与多态-的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 发布《Linux工具快速教程》
- 下一篇: springMVC数据封装成POJO