Animal obj2 = new Dog();

来源:10-1 Java 中的多态

JASON0000

2015-06-30 14:53

父类的引用指向子类对象 怎么理解呢   这和一般的  Dog obj2 = new Dog(); (我习惯了这样写法),有什么么实际意义和应用呢 

写回答 关注

4回答

  • 无敌的大鹏鸟
    2015-08-03 09:44:14

    Aninal animal=new Animal();

    Aniamal animal=new Dog();

    Dog dog=new Dog();

    这三种的意思你应该都清楚,不是所有的东西的存在都一定会有什么实际的意义和应用,如果非得说的话,我只能说增加了编程代码的多样性,你可以有多重选择,但相比起来其实优势差不多,只是创建的时候意义不一样,这就是多样性。

  • 无敌的大鹏鸟
    2015-07-27 18:24:43


    这里是java三种多态中的 引用多态,与Dog obj2 = new Dog(); 是完全不同的,假如子类中重写了父类中的方法show(或者没有写)

    Animal obj2 = new Dog();这里是父类的引用指向子类对象,这样的话子类就可的话我们利用

    obj2.show();就可以调用子类中重写的方法show(如果没有重写,则调用继承的方法show),但是子类中特有的方法是不能调用的


    另一个Animal obj2 = new Aniaml();也就是你说的Dog obj2 = new Dog();这里是父类的引用指向父类对象,利用obj2.父类的中的方法,就可以调用父类中的所有方法

    希望你多理解,在看下那一的视频,希望可以帮到你



    DH111

    Animal obj2 = new Animal();跟Dog obj2 = new Dog();怎么相同呢,按你所举的例子:假如子类中重写了父类中的方法show(或者没有写);那么我用Dog obj2 = new Dog();不是一样可以通过obj2.show();调用子类中重写后的方法吗;所以才如帖主所问:Animal obj2 = new Dog();有什么么实际意义和应用呢 ?同求,望大神解疑。

    2015-07-31 11:21:35

    共 1 条回复 >

  • 墨家巨子
    2015-07-05 12:07:56

    鄙人认为:Animal obj2 = new Dog这样的写法主要是为了以后接口的创建,便于设计模式的实现,以及代码的复用

  • chavin
    2015-06-30 17:50:21

    java的多态,你可以多搜一下资料慢慢体会一下,刚刚开始的确有点难

Java入门第二季 升级版

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

530636 学习 · 6091 问题

查看课程

相似问题