永发信息网

java. 书上看到在继承哪一节有个叫向上转型的,书上介绍太简单,能具体说说吗?具体的代码,加上解

答案:2  悬赏:80  手机版
解决时间 2021-12-03 16:26
java. 书上看到在继承哪一节有个叫向上转型的,书上介绍太简单,能具体说说吗?具体的代码,加上解
最佳答案
举例说明:
1、两个类:动物、狗,狗是动物的子类。
2、一般编码会这样写:动物 旺财 = new 狗();
此时:我们只能拿“旺财”当动物用,不能当狗用。这就是向上转型。
一般向上转型是默认自动转换,拿此例来说,因为:狗一定是动物,也就是子类一定是父类类型。
但向下转型就不行,因为:动物不一定是狗,此时需要强转。

根本原因是你要注意等号的左边和右边的关系:
左边是引用和引用类型,是声明类型
右边是具体的实例,也就是真实类型追问动物 旺财 = new 动物();

这样写不就行了?那为什么还会出现向上转型追答这就涉及到一个面向对象的多态问题了。
多态,一种类型多种形态,多态的优点之一:灵活。
动物 旺财 = new 动物();
一般“动物”是一个非具体的事物,程序里往往设计成接口或抽象类,也就是不能实例化。

动物 旺财 = new 狗();

一般左边用父类做声明类型,右边用子类做具体类型,此多态好处的体现就是:
我需要一个动物来完成事情,那么只要是动物的子类,你都可以给我,并不定死。
换句话来说,一般父类往往更广泛,拿来做声明类型,余地更多。
但要注意的是,需要根据具体问题而变化,比如我必须要狗才能完成的事情,而却以动物做声明类型,那么会出问题,因为你给个猫、猪都行,但一旦强转成狗就会出错。追问动物 旺财 = new狗();
狗 旺财 = new 狗();

这两个有什么区别。采纳给你了,帮我解决这个吧~追答动物 旺财 = new狗();灵活些

狗 旺财 = new 狗();具体些

其实这两个可以说没什么区别,因为多态一般是在方法传参才明显的体现出来。追问嗯,谢谢你
全部回答
父类型的引用可以指向子类实例,可以使用子类型实例的地方都可以用父类型实例替代追问举个例子好吗,代码能看懂就行,不需要很规范
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
9.74×23.4+2.6×2.34 简便计算
南飞大雁,谁懂它的思念
这道题怎么求m
2400km的道路,3天走了20%,剩下的路几天可以
五年级数学暑假作业参考答案
下列说法中错误的是A.H2表示一个氢分子B.CO可
My aunt Lisa is office worker.A. aB. anC.
63吨折弯机可以折几毫米不锈钢板
金桂园怎么样?好不好?值不值得买?
北方俗称的杨la子是什么
巨蟹男总是和我斗嘴,因为爱吗
我要投诉成都公交341路
自体脂肪填充额头后感觉脂肪下流了,鼻梁和山
以纯 董事长 郭东林简历
150减12(15减3)等于x
推荐资讯
招远人在外面应该说自己是烟台人还是说自己是
用VC++如何产生一个exe文件?
海门劳动局电焊复审多长时间能拿到证
1.35=27/20=54:( )
青和锦江国际酒店怎么样
求xp1024要去码~~~~
芋头怎么烧芋头怎么烧
28分49的约分结果是多少?
来人回答谢谢
什么软件看小说免费又全
f(x)=lim(n->∞) [(n-1)x]/[nx^2+1] ,则f
孩子身高体重明显偏小怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?