Java对于多态的理解
1. 父类:肯定调用父类的方法 2. 子类:如果有重写父类的方法,调用方法是子类的,如果调用父类的需要使用关键字super.方法。 3. 子类:如果调用的方法子类没有,就去看父类。
父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法 ; T
父类的对象可以调用父类的所有方法但不能调用子类的所有方法;X
子类的对象可以调用父类的所有方法以及子类的所有方法。 这样理解对不对 T
1. 父类的引用指向子类的对象,则这个引用可以调用父类的所有方法以及子类中被重写的方法;-------正确
2. 父类的对象可以调用父类的所有方法但不能调用子类的所有方法;-----按理说应该是对的,
有一种情况需要考虑,Animal dog = new Dog();
动物创建的真实对象是狗,所以强制转换为dog后,可以调用。Animal 本身不可以调用
3. 子类的对象可以调用父类的所有方法以及子类的所有方法。----正确
为什么要使用多态?
1.。多态有编译时多态 和运行时多态。
第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。
第一种
就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如: 加法运算,可以使int相加,可以是double相加,都是同一个方法名。
第二种
就是动态绑定,使用父回类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。
这样的作用就是扩展性极好,玩过网游的话应该知道 游戏中有不同的角色,
它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,
魔答法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,
各自有自己的现实,表现出来多态。 如果有一天你想再加个角色,只用再写一个类继承该父类,
覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好。

浙公网安备 33010602011771号