1 这个问题分为两个方面,第一首先明确什么是多态?第二,重载是什么,是否满足了多态的要求?所谓多态就是父类的引用指向子类对象。
当调用子父类同名参数时,执行的是子类重写的父类方法,就是虚拟方法调用。
2 什么是虚拟方法调用?子类中定义了与父类同名同参数的方法,在多态的情况下,将此时父类的方法称为虚拟方法,父类根据赋予它的不同的子类,动态的调用该方法。这样的方法调用在编译期是无法确定的。
3 重载是什么?重载是指允许多个同名但是参数不同的方法存在,编译期根据方法的参数表,对同名方法做修饰,对编译器而言,重载的方法,就是不同的方法,所以在编译期就已经确定调用地址了。所以,对于重载而言,在编译期就确定了的。而多态则是在调用时才确定,因此重载不是多态。
方法的重载是不是多态?
最新推荐文章于 2024-02-14 12:24:07 发布