弄懂Java提供的两种多态机制——重载与覆写

什么是多态呢?

多态是指一个程序中同名但不同方法共存的形态。

为什么Java要提出多态机制呢?

Java将万物抽象成类,在复杂的世界中,实现同一个功能会遇到各种各样的情况,所以需要根据实际需要定义不同的方法内容

java提出了怎样的机制实现多态呢?

java提供重载覆写来实现多态

什么是重载呢?

在一个类中定义了多个同名但是不同参数的方法,称这些方法叫做重载

同名,顾名思义,就是方法名称相同。

不同参数,指的是参数的类型不同或者是参数的个数不同(二者有其一即可构成重载)

ps:参数的顺序不同或者方法的返回值类型不同均不能构成重载

什么是覆写呢?

子类对从父类那里继承过来的方法进行重新定义,参数,方法返回值,方法名均不改变,称这个过程为覆写

ps:

  • 如果方法名同但参数不同则构成重载而非覆写
  • 如果方法名同,参数同,返回值不同,则编译无法通过
  • 子类的访问权限应 >= 父类的访问权限
  • 同名的static方法与非static方法之间不能互相覆写
  • 父类中被final修饰的方法,在子类中不能被覆写

多态的应用

重载的应用:随着软件的更新,我们需要对功能的实现添加新的参数,那么如何既对原来的功能进行复用,又做到对功能扩充新的参数呢?通过保留旧接口保障原有的程序的稳定,再通过增参重载扩充需求,并且重载的方法除了新增部分以外,可以复用原有的方法

覆写的应用:建立一个抽象类(shape),建立两个具体化子类继承shape,子类对父类中的抽象方法进行覆写。用父类的引用分别指向两个对象进行同一个方法的调用,会产生不同的结果(倘若有很多子类要进行方法调用,则可大大缩减代码)

猜你喜欢

转载自blog.csdn.net/qq_51800570/article/details/121132711