java中的多态

来源:互联网 发布:清华计算机系课程知乎 编辑:程序博客网 时间:2024/06/01 14:24

一、什么是多态

  1. 面向对象的三大特性封装、继承、多态。在某种程度上可以说:继承和封装是为多态服务的,是多态机制实现的前提。
  2. 多态的定义指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是方法调用)
  3. 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
  4. 多态的作用消除类型之间的耦合关系,提高代码的扩展性,接口与实现类之间就很好的体现了多态的优越性,方法重写
  5. 多态的表现形式:父类作为参数在方法中传递,父类作为返回值即返回,分别对应的方法重载和方法重写 。

多态存在的三个必要条件
一、继承;
二、重写
三、父类引用指向子类对象

 二、多态的好处

1.在接口和实现类中,将方法体与具体实现分离,避免了牵一发而动全身的代码改写,提高了程序的扩展性和健壮性。

2.不论是父类和继承类之间还是接口和实现类之间,方法执行实现了动态绑定,根据实际类型(包括传递的参数,返回值类型)去匹配并执行对应的方法,不需要程序员去分配。

3.方法重载,最简单的就是有参构造函数和无参构造函数,同一个类之间方法可以进行重载,调用无参构造时执行无参构造方法,调用有参构造方法是执行有参构造方法,也是方法动态绑定。

Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

三、方法重载与方法重写(覆盖)的区别

1.方法重载发生在同一个类中,方法重写发生在2个类之间(父类和子类或者接口和实现类);

2.方法重载与返回值类型和参数列表无关,方法重写的返回值类型和参数列表必须相同;

3.方法重载修饰符必须相同,可以是protected,private,public;方法重载修饰符必须是public,不能被final修饰;

4.共同点:方法名都必须相同。


0 0
原创粉丝点击