父类的引用指向子类的对象和真正的父类的对象调用方法的时候有什么区别? 父类的引用指向子类的对象和真

父类的引用指向子类的对象和真正的父类的对象调用方法的时候有什么区别?
父类的引用指向子类的对象和真正的子类的对象调用方法的时候有什么区别?

区别在于,真正的父类对象调用的方法还是父类自己实现的那个方法,可是要是父类的引用指向子类的对象(向上转型)这种,假如子类重写了父类的方法,那么父类在调用那个方法的时候,方法的实现是按照子类重写的来实现;这个你可以实际写段代码测测就知道了;追问

父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。

这样理解对不对

父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。

这样理解对不对?

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-20

     父类:肯定调用父类的方法

    子类:如果有重写父类的方法,调用方法是子类的,如果调用父类的需要使用关键字super.方法。

    子类:如果调用的方法子类没有,就去看父类。

追问

父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。

这样理解对不对

追答

     父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;-------正确

    父类的对象可以调用父类的所有方法但不能调用子类的所有方法;-----按理说应该是对的,有一种情况需要考虑,Animal dog = new Dog(); 动物创建的真实对象是狗,所以强制转换为dog后,可以调用。Animal 本身不可以调用

    子类的对象可以调用父类的所有方法以及子类的所有方法。----正确

本回答被提问者采纳
相似回答