芒果味丶
2016-05-11 00:06
采纳率: 66.7%
浏览 1.3k
已采纳

关于java多态的问题,不是很懂。

在java se中为什么利用父类引用指向子类对象。而不直接new子类呢,这样有什么好处?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • llxiaoh 2016-05-11 01:19
    已采纳

    换句话说,每天到吃饭的点,我们习惯会说,“去吃饭”,而不是会说“去吃青椒肉丝盖浇饭”。父类相当于一个范围,子类相当于一个具体的。

    打赏 评论
  • Robot-C 2016-05-11 00:12

    昨天看到有关java多态的一篇文章,内容如下文章转自:http://blog.csdn.net/thinkGhoster/archive/2008/04/19/2307001.aspx                        深入理解java多态性        昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢......
    答案就在这里:关于java多态的问题
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    打赏 评论
  • l_vaule 2016-05-11 00:31

    这是多态的一种表现,当你的子类很多种的时候,声明父类的引用,创建对象的时候可以有很多选择,在新添加子类的时候,也符合开闭原则。

    打赏 评论
  • 小灸舞 2016-05-11 00:39

    因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特。
    定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
    所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
    同时,父类中的一个方法只有在在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;
    对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。

    打赏 评论
  • KingfarOu 2016-05-11 00:42

    你说的这个特性本身是Java语法所支持的,然而这么做的原因不是Java层面上的事情,而是设计模式层面上的事情,简而言之,你百度下“面向接口进行编程”

    打赏 评论
  • FirePrayer 2016-05-11 00:48

    这个是方便程序逻辑处理.
    比如一个父类People有眼睛,耳朵的方法.
    然后有子类APeople,BPeople继承它,但是两个子类的眼睛,耳朵方法实现都不一样.
    但是在程序中为了能让不同的人在一个集合里面,所以集合对象只能是People.但是本质却是不同的子类对象.

    打赏 评论
  • threenewbee 2016-05-11 00:55

    如果按照你说的子类就自己new,自己调用,那么为什么还要继承呢?

    打赏 评论
  • 码界修真 2016-05-11 01:05

    简单来说是为了以后修改方便吧。
    比如我们所要引用的子对象因为需求改变,我只需要改 new 后面的子类名称就好了,如果用子类的对象赋给子类的引用那修改的话就得改至少两处地方了。(个人愚见)

    打赏 评论

相关推荐 更多相似问题