多态是面向对象程序设计中代码重用的一个重要机制,它表示当同一个操作在不同对象时,会有不同的语义,从而会产生不同的结果,例如:同样是执行“+”操作,“3+4”用来实现正数相加,而“3”+“4”却实现了字符串的连接。
java中有两种多态机制,分别是编译时多态和运行时多态。编译时多态是通过方法重载实现的,运行时多态是通过方法的覆盖(子类覆盖父类方法)实现的。
Java实现多态有三个必要条件:继承、重写、向上转型。
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。
只有满足了上述三个条件,我们才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而达到执行不同的行为。
在java语言中,多态主要有以下两种表现方式:1.方法的重载2.方法的覆盖。
方法重载是指同一个类中有多个同名的方法,但这些方法有着不同的参数,因此在编译时就可以确定到底调用哪个方法,它是一种编译时多态。重载可以被看作一个类中的方法多态性。
方法覆盖是指子类可java的多态机制实现的基础是以覆盖父类的方法,因此同样的方法会在父类与子类中有着不同的表现形式。在java语言中,基类的引用变量不仅可以指向基类的实例对象,也可以指向其子类的实例对象。同样,接口的引用变量也可以指向其实现的实例对象。
程序调用的运行方法在运行期间才动态绑定(绑定指的是将一个方法调用和一个方法主体连接到一起),就是引用变量所指向的具体实例对象的方法。通过这种动态绑定的方法实现了多态。由于只有在运行时才能确定调用哪个方法,因此通过方法覆盖实现的多态也可以被称为运行时多态。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/26280.html