Java|如何理解Java中的多态?

Java|如何理解Java中的多态?

文章图片

Java|如何理解Java中的多态?

文章图片



【Java|如何理解Java中的多态?】Java是编程语言中的最流行的一种 , Java常年占据着编程语言指数排行榜的前五的位置 , 拥有众多的开发者以及良好的生态 , TIOBE公布的今年8月份编程语言指数排行榜如下图所示 。

Java作为面向对象的动态高级编程语言 , 抽象、封装、继承、多态为Java面向对象的最重要的四个特征 , 今天我们就来聊一聊如何理解Java中的多态 。
我们先来了解一下Java中多态的概念 , 在Java中多态是指在父类中定义的属性和方法被子类继承之后 , 可以具有不同的数据类型(属性)或表现出不同的行为(方法);允许不同类的对象对同一动作作出响应 。 不同对象调用相同方法即使参数也相同 , 最终表现行为也可能是不一样的从而扩大对象的自适应性 。
那么Java是如何实现多态的呢?
根据动静态划分分为静态多态(重载)以及动态多态(重写) , 根据处理时机划分分为编译时多态(重载)和运行时多态(重写)换成人话其实就是Java中的两种用于多态的机制:重载与重写 。
重载:重载是指同一个类中有多个同名的方法 , 但这些方法有不同的参数 , 根据调用方的参数在编译期间就可以确定调用哪个方法 。
重写:重写是指派生类重写基类的方法 , 使用基类指向其子类的实例对象 , 或接口的引用变量指向其实现类的实例对象 , 在程序调用的运行期根据引用变量所指的具体实例对象调用正在运行的那个对象的方法 , 即需要到运行期才能确定调用哪个方法 。
重载和重写是Java中实现多态的重要机制 。 重载又被称为静态多态、编译时多态 , 发生在一个类中 , 同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载 。
重载程序示例如下:

重写: 又称动态多态 , 运行时多态:发生在两个类中;方法名、参数、返回类型都与父类一致 , 不可以修改 , 但是里面的实现可以与被重写方法不同 。 (可以使用@Overwrite标签校验) , 重写示例程序如下:

Java中多态性包括参数多态性和包含多态性 。 Java编辑器会自动根据所传递的参数进行判断 , 根据运行时对象的类型不同而执行不同的操作 , 这样很好地解决了应用程序函数同名问题 。 多态性丰富了对象的内容 , 扩大了对象的适应性 , 改变了对象单一继承的关系 , 使得Java更具魅力 。