问答详情
源自:10-1 Java 中的多态

关于方法的多态

在这节课的案例中

Animal obj1 = new Animal();

Animal obj2 = new Dog();

这两个有什么区别吗

如果换成Dog obj2 = new Dog(); 

也是可以的把


提问者:阿楠呐 2018-08-10 15:22

个回答

  • code_walker
    2018-08-13 17:02:23

    建议了解一下实现多态的三个必要条件:继承,重写,向上转型。

    父类类型的引用可以调用父类的所有属性和方法。

    子类重写父类方法,父类引用指向子类对象时,可调用子类中重写方法。

    子类重载父类方法,父类引用指向子类对象时,无法调用子类中重载方法(父类中不存在该方法)。

  • ITgirl_hi
    2018-08-10 16:21:36

    Animal obj1 = new Animal(); //1. 父类的引用指向父类的对象
    Animal obj2 = new Dog();    //2. 父类的引用指向子类的对象
    Dog obj2 = new Dog();       //3. 子类的引用指向子类的对象
    //总的来说,第一种和第三种属于一类,都是本类的引用指向本类的对象。