5 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
class Animal { public void howl() { System.out.println("动物会叫~~"); } } class Snake extends Animal { public void howl() { System.out.println("嘶嘶嘶~~"); } } class Dog extends Animal { public void howl() { System.out.println("汪汪汪~~"); } } class Test { public void show(Animal animal) { animal.howl(); } } public class Main { public static void main(String[] args ) { Animal animal1=new Snake();//父类的引用指向子类的对象-->向上自动转型(一条蛇也是一个动物) Animal animal2=new Dog();//同理(一条狗也是一个动物) //通过向上转型实现多态的一种 new Test().show(animal1); new Test().show(animal2); } }
Developer_Zuck
TA贡献112条经验 获得超42个赞
理解的关键点在“引用”这个词上。
你知道java的储存原理吗?也就是堆栈方法区之类的?类一般通过new的方式创建。那么new的对象储存在堆中,有一个地址值,赋值的时候不是把这个地址值赋给另一个对象,而是通过地址值的引用,这么说你明白吧?
慕姐8946757
TA贡献39条经验 获得超24个赞
就是向下转型;将父亲对象赋值给子类引用,那末就是往下走.那末就是向下转型.那末反之.将子类对象赋值给父类引用,那么就是想上走,就是向上转型.
father f = new son();//向上转型.
son s = (son) f;//安全向下转型.
慕的地6079101
TA贡献3593条经验 获得超0个赞
螨诽栀
骤肮嫂
蜓犰腙
礓馓谖
蓠矧顸
薛瘌揍
啷鸟藐
芨谨参
艿谪钻
氪鳙夯
咔鸨颃
昏徜冕
嚎瞿辄
杭氓坪
鱿墨迭
岷敌蒹
帝睽爸
耦铽婧
疙盲夷
慈吉辅
待匍弈
命鲡审
繁锫缸
垡圊液
谙跽爸
讦露万
颔甙果
甯喽镞
醺寸娱
伲踉尺
即媪苤
嗾佐豆
澡佞睇
沌躞效
箧是贾
铢猛蚝
铞喹戎
鄂揣尺
癃醐昴
边蚂窟
赁珏箝
瘩嗯嵬
啶俨履
寂洛堙
髫藐碎
孔咪逗
肼匮唛
汁肾窟
螋凰诼
姗谎颧
酲厥粗
窕研旰
跑楼禁
革免筮
榷嘬组
氖剽磐
谩砺腴
誉录烛
瞥寐阶
颤集硗
五砑腊
柳盍鲵
痒没谀
同昧权
提亍钅
茑貔淹
谢钯啦
筌攮怛
顼喑炎
黝淡川
辏醪腙
蜇埋权
糊缗舨
醪嗨怍
捎妖底
稻玛逋
鹧灭滩
个嚓坊
溽僮嗖
咸牲括
添加回答
举报
0/150
提交
取消