问题描述
- 关于java多态的问题,不是很懂。
- 在java se中为什么利用父类引用指向子类对象。而不直接new子类呢,这样有什么好处?
解决方案
换句话说,每天到吃饭的点,我们习惯会说,“去吃饭”,而不是会说“去吃青椒肉丝盖浇饭”。父类相当于一个范围,子类相当于一个具体的。
解决方案二:
昨天看到有关java多态的一篇文章,内容如下文章转自:http://blog.csdn.net/thinkGhoster/archive/2008/04/19/2307001.aspx??????????????????????? 深入理解java多态性????????昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢......
答案就在这里:关于java多态的问题
解决方案三:
这是多态的一种表现,当你的子类很多种的时候,声明父类的引用,创建对象的时候可以有很多选择,在新添加子类的时候,也符合开闭原则。
解决方案四:
因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特。
定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
同时,父类中的一个方法只有在在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;
对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。
解决方案五:
你说的这个特性本身是Java语法所支持的,然而这么做的原因不是Java层面上的事情,而是设计模式层面上的事情,简而言之,你百度下“面向接口进行编程”
解决方案六:
这个是方便程序逻辑处理.
比如一个父类People有眼睛耳朵的方法.
然后有子类APeopleBPeople继承它但是两个子类的眼睛耳朵方法实现都不一样.
但是在程序中为了能让不同的人在一个集合里面所以集合对象只能是People.但是本质却是不同的子类对象.
解决方案七:
如果按照你说的子类就自己new,自己调用,那么为什么还要继承呢?
解决方案八:
简单来说是为了以后修改方便吧。
比如我们所要引用的子对象因为需求改变,我只需要改 new 后面的子类名称就好了,如果用子类的对象赋给子类的引用那修改的话就得改至少两处地方了。(个人愚见)