java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)知識(shí)點(diǎn)詳解
1、直接賦值
public static void main(String[] args) {
//父類(lèi)引用 引用了 子類(lèi)引用所引用的對(duì)象
Animal animal = new Cat();;//向上轉(zhuǎn)型
}
2、方法傳參
把一個(gè)Cat的子類(lèi)傳給一個(gè)Animal類(lèi)型的父類(lèi),這里也是能發(fā)生向上轉(zhuǎn)型的。
public class Test extends TestDemo {
public static void func(Animal animal) {
}
public static void main(String[] args) {
//父類(lèi)引用 引用了 子類(lèi)引用所引用的對(duì)象
Cat cat = new Cat();
func(cat);
}
}
3、方法返回
func方法的返回類(lèi)型是Animal,但返回的確是一個(gè)Cat類(lèi)型,這里也是發(fā)生了向上轉(zhuǎn)型。
public class Test extends TestDemo {
public static Animal func() {
Cat cat = new Cat();
return cat;
}
public static void main(String[] args) {
Animal animal = func();
}
}
實(shí)例擴(kuò)展:
package multistate;
public class Human {
public void sleep() {
System.out.println("Human sleep..");
}
public static void main(String[] args) {
Human h = new Male();// 向上轉(zhuǎn)型
h.sleep();
Male m = new Male();// 干嘛要向上轉(zhuǎn)型
m.sleep();
// h.speak();此方法不能編譯,報(bào)錯(cuò)說(shuō)Human類(lèi)沒(méi)有此方法
}
}
class Male extends Human {
@Override
public void sleep() {
System.out.println("Male sleep..");
}
public void speak() {
System.out.println("I am Male");
}
}
class Female extends Human {
@Override
public void sleep() {
System.out.println("Female sleep..");
}
public void speak() {
System.out.println("I am Female");
}
}
到此這篇關(guān)于java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)知識(shí)點(diǎn)詳解的文章就介紹到這了,更多相關(guān)java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java如何使用自己的maven本地倉(cāng)庫(kù)詳解
這篇文章主要給大家介紹了關(guān)于java如何使用自己的maven本地倉(cāng)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
SpringBoot中使用?ThreadLocal?進(jìn)行多線程上下文管理及注意事項(xiàng)小結(jié)
本文詳細(xì)介紹了ThreadLocal的原理、使用場(chǎng)景和示例代碼,并在SpringBoot中使用ThreadLocal保存請(qǐng)求中攜帶的用戶信息,ThreadLocal通過(guò)為每個(gè)線程維護(hù)獨(dú)立的變量副本,解決了線程安全問(wèn)題,感興趣的朋友一起看看吧2025-02-02
java 實(shí)現(xiàn)計(jì)數(shù)排序和桶排序?qū)嵗a
這篇文章主要介紹了java 實(shí)現(xiàn)計(jì)數(shù)排序和桶排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java動(dòng)態(tài)代理實(shí)現(xiàn)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
動(dòng)態(tài)代理作為代理模式的一種擴(kuò)展形式,廣泛應(yīng)用于框架(尤其是基于AOP的框架)的設(shè)計(jì)與開(kāi)發(fā),本文將通過(guò)實(shí)例來(lái)講解Java動(dòng)態(tài)代理的實(shí)現(xiàn)過(guò)程2017-08-08
java書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì) 總體設(shè)計(jì)(1)
這篇文章主要介紹了java書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì),第一步系統(tǒng)總體設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
在java List中進(jìn)行模糊查詢的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇在java List中進(jìn)行模糊查詢的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11

