/请简单易懂的描述一下java中的多态性的动态绑定机制。并举例说明
多态其实就是同类型的对象,执行同一个行为,会表现出不同的行为特征。
1、常见形式
父类类型 对象名称 = new 子类构造器;
接口 对象名称 = new 实现类构造器;
2、前提
有继承/实现关系
有父类引用指向子类对象
有方法重写
3、动态绑定主要是指的方法的调用
简单来说就是:编译看左边,运行看右边
比如:父类Person有个public方法eat(),其子类Man重写了该方法,定义对象时Person p = new Man();即父类引用指向子类对象,则在执行p.eat()时,会调用子类Man重写的eat()方法。
简单来说就是在编译器编译阶段是看的 = 左边的类,但是在运行时,实际调用的方法是右边的类的。
多态就是方法或对象具有多种形态,是OOP的第三大特征,是建立在封装和继承和父类引用可以指向子类对象基础之上
方法多态可以通过Override、Overload体现多态
只有调用对象的override方法时,在运行期判断引用对象的实际类型,根据实际类型调用相应的方法,overload方法由于参数列表不同载编译期就可以
判断出具体调用方法,它属于静态绑定
静态绑定发生在编译时,动态绑定发生在程序执行时。