父类的引用指向子类的对象和真正的父类的对象调用方法的时候有什么区别?
父类的引用指向子类的对象和真正的子类的对象调用方法的时候有什么区别?
父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。
这样理解对不对
父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。
这样理解对不对?
父类:肯定调用父类的方法
子类:如果有重写父类的方法,调用方法是子类的,如果调用父类的需要使用关键字super.方法。
子类:如果调用的方法子类没有,就去看父类。
父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;
子类的对象可以调用父类的所有方法以及子类的所有方法。
这样理解对不对
父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;-------正确
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;-----按理说应该是对的,有一种情况需要考虑,Animal dog = new Dog(); 动物创建的真实对象是狗,所以强制转换为dog后,可以调用。Animal 本身不可以调用
子类的对象可以调用父类的所有方法以及子类的所有方法。----正确