搜索
首页Javajava教程什么是多态性?

什么是多态性?

Aug 30, 2024 pm 03:43 PM
java

多态性是一个概念,借助它可以以不同的方式执行单个操作。它源自两个希腊词:poly 和 morphs。 “poly”意味着许多,“morphs”意味着形式。从此,多态性意味着多种形式。面向对象编程可以定义为编程语言根据对象的类或数据类型以不同方式处理对象的能力。基本上,我们可以将其定义为派生类重新定义方法的能力。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

理解

多态性有两种类型:编译时多态性和运行时多态性。编译时多态性通过方法重载实现,运行时多态性通过方法重写实现。运行时多态性,也称为动态方法分派,是一个过程,其中对重写方法的调用在运行时解析,尽管在编译时。这里,被重写的方法是通过父类的引用变量来调用的。另外,运行时多态性无法通过数据成员实现。

多态如何让工作变得如此简单?

它是面向对象的编程特性。使用多态性,即使类具有公共接口,也可以表现出不同的功能。因此,我们可以说这个长期术语解释了一个基本概念。多态性值得注意的是,各个类中的所有工作代码都不需要知道其所使用的类,因为它们的使用方式是相同的。

它是面向对象的编程特性。使用多态性,即使类具有公共接口,也可以表现出不同的功能。因此,我们可以说这个长期术语解释了一个非常基本的概念。值得注意的是,各个类中的所有工作代码都不需要知道其所使用的类,因为它们的使用方式是相同的。

考虑多态性的现实场景。举一个按钮的例子。我们知道通过施加一些压力可以点击按钮,但是我们不知道按下按钮的输出或者其使用的参考。这里需要注意的是,无论哪种方式,结果都不会影响它的使用方式。

所以它的基本目标是根据需要制作可互换的对象。

多态可以做什么?

当子类具有与父类中声明的方法相同的方法时,我们将其称为方法重写。

或者换句话说,如果子类提供了其父类已声明的方法的实现,则称为方法重写。在方法重写中需要记住的一些事情是:

  • 该方法必须与父类中提到的方法具有相同的名称
  • 该方法还必须具有与父类中提到的参数相同的参数。
  • 一定有继承,即IS-A关系。

使用多态性?

当一个类有多个名称相同但参数不同的方法时,称为方法重载。

假设我们只需要执行一项操作,那么与方法同名会增加程序的可读性。 Java中重载方法的方法是:

  • 更改参数数量
  • 更改数据类型

但是在Java中,仅仅改变方法的返回类型是不行的。

优点

  • 它可以帮助程序员重用曾经编写的代码和类来进行测试和实现。 (代码的可重用性)
  • 单个变量名可以存储多种数据类型的变量(int、float、double、long等)。
  • 增加程序的可读性。

为什么要使用多态性?

除了动态多态和静态多态之外,一些Java编程特性还表现出两种主要类型之外的多态性。

这些是 – 强制、多态参数和运算符重载

强制

让我们用一个非常简单的例子来理解强制转换。考虑一个值为“强制类:”的字符串。考虑另一个值为 1 的整数。现在,当您将字符串值与整数值连接时会发生什么?此串联的输出将是“强制类别:1”。这就是所谓的强制。进行隐式类型转换是为了防止类型错误。编译器会做到这一点。

运算符重载

在开始介绍运算符重载(也称为方法重载)之前,让我们先看一个示例。考虑一个值为“Operator”的字符串和另一个值为“Overloading”的字符串。对这两个字符串使用加号 (+),就像添加两个整数一样。 (+) 将连接这两个字符串。如果是两个整数,则返回两个整数之和。当一个符号或运算符能够根据其使用方式改变其含义时,所表现出的多态性类型称为运算符重载。

参数

在多态性中,一个对象可能以多种形式出现。在 Java 中,它指的是允许通过以下方式之一访问对象,例如 –

1.使用其父类或超类的引用变量

2.使用它所在类的引用变量。

为什么我们需要多态性?

需要多态的主要原因是这个概念广泛用于实现继承。它在允许对象具有不同的内部结构并共享相同的外部接口方面发挥着重要作用。它被明确指出为许多人所映射的。

范围

绑定是将方法调用连接到方法体。我们有两种类型的绑定。

静态绑定(早期绑定): 在编译时确定对象的类型。

动态绑定(后期绑定):当运行时确定对象的类型时。

结论

因此它被认为是面向对象编程的非常重要的特性之一。如果你谈论一个现实生活中的多态性例子,它可能是一个人在同一时间可以有不同的特征;例如,一个男人同时是儿子、丈夫、雇员。所以同一个人在不同的情况下会表现出不同的行为。用面向对象的术语来说,这称为多态性,是面向对象编程的一个重要特征。

以上是什么是多态性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器