为了账号安全,请及时绑定邮箱和手机立即绑定

这两者有什么区别与联系?

569395cf0001c2fa01710214.jpg

569395cf00014e4c05000410.jpg

Phone phone1=new Nokia;与Nokia nokia=new Nokia;都可以调用call()跟send(),运行结果也一样,那这两者有什么区别与联系?

正在回答

2 回答

Phone是Nokia和Apple继承的父类(下面只以Nokia说明)。

Phone phone1=new Nokia这种用法叫做“父类引用指向子类对象”,即声明的是父类,实际指向的是子类的一个对象。由于Nokia是继承自它的父类Phone,所以Phone类型的引用是可以指向Nokia类型的对象的。这就是“向上转型”。

这种用法的优点是使用者可以更关注父类能做什么,而不去关心子类是具体怎么做的。因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大, 定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。你可以随时替换一个子类,也就是随时替换一个具体实现,而不用修改其他。

3 回复 有任何疑惑可以回复我~

前者是把子类转成父类,称为向上转型,而不能把父类转化为子类

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季
  • 参与学习       531255    人
  • 解答问题       6327    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

这两者有什么区别与联系?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号