最近在重看SE多态的时候,遇到了一些问题,特向BigChanLee请教了。现在小结如下,以供小白va日后温故。
1.小白理解的多态:同一个方法名,由于参数列表和方法体不一样,不同类型对象的同种方法执行的结果呈现多样性。
2.多态在java中的体现
a.方法的重载;
此种多态容易理解。理解java方法的重载即可。
b.方法的重写;
此种类型的多态特别需要注意向上转型的例子。
当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法,但是它仍然要根据继承链中方法调用的优先级来确认方法,该优先级为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。(蓝色字体源于java帮帮公众号)