返回顶部
首页 > 资讯 > 后端开发 > JAVA >【JAVA】多态的概念与实际利用
  • 764
分享到

【JAVA】多态的概念与实际利用

java开发语言 2023-09-21 10:09:45 764人浏览 独家记忆
摘要

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 在面向对象(OOP)的程序设计语言中,多态与封装、继承合称为OOP的三大特性。在今天,我们就来学习一下JAV

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️初识JAVA】


前言

面向对象(OOP)的程序设计语言中,多态与封装、继承合称为OOP的三大特性。在今天,我们就来学习一下JAVA中的多态是什么样子的。、
在这里插入图片描述

多态

指一个对象在不同情况下可以表现出不同的行为。Java多态性分为两种:编译时多态性(静态多态性)和运行时多态性(动态多态性)。

编译时多态性:也称为静态多态性,是指在编译期间就能确定方法的调用方式、参数类型及返回值类型等,主要通过方法重载实现。
运行时多态性:也称为动态多态性,是指在运行期间才能确定方法的调用方式,主要通过方法重写实现。Java中实现运行时多态性的关键是继承和方法重写。

具体来说,当一个类的子类重新定义了一个或多个已在父类中定义的方法时,那么子类的对象将可以调用重新定义的方法,而不是调用父类中的方法。这种现象称为方法重写。当通过父类的引用变量来引用一个子类的对象时,父类引用变量不能直接调用子类中重新定义的方法,而是要调用子类中的方法,这种多态性称为动态多态性。

多态实现的重要条件

Java多态实现的重要条件包括:

  1. 继承必须有继承关系,子类必须继承父类
  2. 覆盖:子类必须重写父类的方法
  3. 向上转型:可以声明一个父类引用类型的变量,将它指向一个子类对象。通过这种方式调用方法,就可以实现多态。
  4. 动态绑定:在运行时而不是编译时进行方法调用。这样就能够根据实际调用的对象类型来决定调用哪个方法,实现多态。

虚函数

在Java中,所有方法都是虚函数,因为它们都是在运行时动态绑定的。当子类继承父类时,它可以覆盖父类的方法,但具体调用哪个方法取决于对象的实际类型而不是变量的声明类型。因此,可以在运行时动态处理对象的多态性。

使用关键字“override”来覆盖父类的方法。子类中的方法必须与父类中被覆盖的方法具有相同的名称、参数列表和返回类型。这样,当调用子类中的方法时,根据对象的类型来确定应该调用哪个方法。

实例

假设我们有一个Animal类和一个Cat类,Cat类是Animal类的子类。

Animal类中定义了一个虚方法makeSound(),它会输出动物发出的声音:

public class Animal {    public void makeSound() {        System.out.println("The animal makes a sound");    }}

Cat类继承了Animal类并覆盖了makeSound()方法:

public class Cat extends Animal {    public void makeSound() {        System.out.println("The cat meows");    }}

现在,我们可以实例化一个Animal对象和一个Cat对象,并调用它们makeSound()方法:

Animal animal = new Animal();Cat cat = new Cat();animal.makeSound(); // 输出 "The animal makes a sound"cat.makeSound(); // 输出 "The cat meows"

注意,由于Cat类继承了Animal类,因此可以使用Cat对象来代替Animal对象,因为它们都是Animal类的实例。这就是面向对象编程中的多态性。

多态的实现方式

方式一:重写:
这个内容已经在上一篇文章中我有详细的讲过Java 重写(Override)与重载(Overload)
方式二:接口

  1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。

  2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。具体可以看 java接口 这一章节的内容。

方式三:抽象类和抽象方法

来源地址:https://blog.csdn.net/weixin_73602725/article/details/133038845

--结束END--

本文标题: 【JAVA】多态的概念与实际利用

本文链接: https://lsjlt.com/news/413840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【JAVA】多态的概念与实际利用
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 在面向对象(OOP)的程序设计语言中,多态与封装、继承合称为OOP的三大特性。在今天,我们就来学习一下JAV...
    99+
    2023-09-21
    java 开发语言
  • java多态的概念是什么
    Java多态的概念是指子类对象可以以父类的类型进行引用和操作。多态性是面向对象编程的重要特性之一,它允许一个变量引用不同类型的对象,...
    99+
    2023-09-22
    java
  • Java多态的概念有哪些
    这篇“Java多态的概念有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java多态的概念有哪些”文章吧。1.多态的概念...
    99+
    2023-06-30
  • Java继承与多态的概念是什么及怎么实现
    这篇文章主要介绍“Java继承与多态的概念是什么及怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java继承与多态的概念是什么及怎么实现”文章能帮助大家解决问题。一、继承1、继承的概念继承机...
    99+
    2023-06-29
  • java中多态概念、实现原理详解
    一.什么是多态?1.多态的定义指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)2.多态的作用消除类型之间的耦合关系3.多态的说明近代网络小说泛滥,我们可以用它来举一个例子...
    99+
    2023-05-31
    java 多态 ava
  • java语言之继承与多态的概念是什么
    在Java语言中,继承是一种对象-oriented编程的概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和...
    99+
    2023-10-11
    java
  • java静态代理与动态代理的概念
    本篇内容介绍了“java静态代理与动态代理的概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!    ...
    99+
    2023-06-02
  • Java由浅入深分析多态的概念
    目录1.多态的概念2.向上转型2.1概念2.2常见的向上转型的形式3.重写3.1重写的注意事项在结束继承内容之后便是多态,这同样也是面向对象程序的特性 有一点需要说明:为方便演示,所...
    99+
    2024-04-02
  • java多态的向上转型的概念及实例分析
    1、说明 向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象,即父类 父类对象 = 子类实例。 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不...
    99+
    2024-04-02
  • MySQL中外键的概念及实际应用
    MySQL中外键的概念及实际应用 一、外键的概念 在数据库设计中,外键是用来描述表与表之间关系的一种重要约束。外键用来确保在一个表中的某些列的值必须在另一个表中的相应列中有对应的值。外...
    99+
    2024-04-02
  • 解析PHP中的多态性概念
    PHP中的多态性概念及代码示例 在面向对象编程中,多态性是一种重要的概念,它使得不同对象可以对同一消息作出不同响应。在PHP中,多态性可以通过接口和继承来实现。接下来我们将通过具体的代...
    99+
    2024-04-02
  • Java多线程的概念及使用
    本篇内容介绍了“Java多线程的概念及使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录线程Thread类Runnable接口创建线程T...
    99+
    2023-06-20
  • OA信用盘盘口搭建架设 Java的继承与多态重要概念
    一,继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,OA信用盘盘口搭建架设bbs.yasewl.com(Q_917899899)使得子类对象(实例)具有父类的实例字段,或子...
    99+
    2023-06-05
  • Java中ArrayList与顺序表的概念与使用实例
    目录前言泛型(Generic)泛型的引入泛型的基本概念包装类(Wrapper Class)包装类的引入基本数据类型与包装类的对应关系ArrayList与顺序表ArrayList简介A...
    99+
    2024-04-02
  • Java 多态:突破代码僵局的革命性概念
    Java 多态性的介绍 多态性是 Java 中面向对象编程的一个重要特征。它允许您使用相同的接口来处理不同类型的对象。这使得代码更具灵活性、更简化,还可以提高可维护性。 多态性有两种主要类型: 静态多态性: 这种多态性发生在编译时。它...
    99+
    2024-02-06
    Java 多态 面向对象编程 继承 方法重写
  • Python 继承与多态:从概念到应用,一网打尽
    什么是继承? 继承是面向对象编程中一个基础的概念,它允许一个类(子类)继承另一个类(父类)的特性。子类继承父类的属性和方法,并可以覆盖父类的方法以实现不同的行为。这有助于代码重用,减少重复代码并增强可扩展性。 继承的语法 在 Pytho...
    99+
    2024-02-19
    Python 继承 多态 代码重用 可扩展性
  • Java反射概念与使用实例代码
    目录前言反射基础数据准备基于反射创建对象获取反射中的对象获取类中属性获取类中的构造方法获取类中方法结语前言 大家好,瑞雪后的第一天,每个周一的大家都期待这周五的来临。相信很多小伙伴...
    99+
    2024-04-02
  • Java多线程编程的概念
    这篇文章主要讲解了“Java多线程编程的概念”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java多线程编程的概念”吧!Java多线程编程是什么?一个程序或进程能够包含多个线程,这些线程可以...
    99+
    2023-06-17
  • 数据类型和接口的概念在 Java 框架中的实际应用。
    在 Java 框架中,数据类型和接口是非常重要的概念,它们的正确使用可以大大提升程序的效率和可读性。下面我们就来探讨一下这两个概念在 Java 框架中的实际应用。 一、数据类型在 Java 框架中的实际应用 Java 是一种强类型语言,因此...
    99+
    2023-10-13
    框架 数据类型 接口
  • Java封装与接口的概念
    这篇文章主要讲解了“Java封装与接口的概念”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java封装与接口的概念”吧!封装与接口封装(encapsulation)是计算机常见的术语,即保留...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作