猿问

JAVA中为什么通过父类成子类的对象进行调用子类的方法然后打印出来


5797520f0001363005000289.jpg

579752100001a73305000325.jpg

579752110001788105000358.jpg

各位前辈,我想问一下第四张图里面,两个问号所在的代码都可以打印出相同的结果,第一个通过父类生成子类的对象进行调用子类的方法然后打印出来与第二种直接用子类生成子类的对象在调用子类里面的方法进行打印之间有什么不同的地方,我看视频里面老师讲解就是第一种,说是向上转型,我想知道就是既然都能够打印出相同的结果为什么要用第一个问好里的代码而不用第二种容易理解的代码?还有第一种是用继承定义接口吗?第一种的代码方式出来这种用法还有别的什么用处吗,谢谢!!!

慕粉15522702521
浏览 2874回答 3
3回答

丶包菜

假设我公司有台万能电话,能当座机又能当手机用,客户想用座机,给他万能电话座机的那个功能,客户想要用手机,同样也只需给他这只万能电话。 反正只要给他一台万能机,就能 new出座机  也能 new出手机。万能机 万能=null;第一次: 万能=new 座机第二次: 万能=new 手机第二种方案,客户要座机,给他 new座机,客户要手机,给他 new手机。第一次: 座机 座机=new 座机第二次: 手机 手机=new 手机结果虽然一样,但效率和成本就不一样。所以呢,第一种方案效率更好,他能满足许多的需求,只需调用它的娃娃们。

望远

这里只是为了说明java中的一种多态效果,可以通过继承的方式使得父类引用指向子类对象(例如工人一定是人,这就是向上类型转换),并且通过父类引用调用子类父类中均有的方法,使得代码更具有灵活性。
随时随地看视频慕课网APP

相关分类

Java
我要回答