Java中方法的重载和重写

2023-11-19

重载是在同一个类中的具有相同方法名,不同参数(个数、类型、顺序)的方法的定义,构造方法 普通方法 抽象方法都可以重载;重写是在子类继承父类的时候重写,在子类重写的方法名必须和父类的方法名完全相同,可以用@Override检查是否是重写方法。

一.重载(Overload)

Overload:发生在一个类或者其一个子类当中,具有相同的方法名,但是方法的参数列表不同与返回值无关,所以返回值类型可以相同也可以不同。方法重载是编译时多态

①函数名相同

②参数列表一定不同(类型,个数)

③返回值不做要求,可同可不同

④被重载的方法可以改变访问修饰符

重载(Overload)→重载就是对于不同情况写不同的方法。比如,同一个类中,写不同的构造函数用于初始化不同的参数。

二.重写(Override)

Override:发生在父类和子类之间方法名相同参数列表相同返回值相同,但是具体实现不同。方法重写是运行时多态

“外壳不变,核心重写”

①函数名相同

②参数列表相同(类型,个数)

③返回值相同

④访问权限不能比父类中被重写的方法的访问权限更低。例如:父类方法被public修饰,则子类中重写该方法就不能被声明为protected。81a06ad61ccf4ec0ae6be3c4cc338e03.png

 ⑤子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。

⑥构造方法不能被重写

重写(Override)→就是具体的实现类对于父类的该方法实现不满意,需要自己再写一个满足自己要求的方法。

三.Java中重载和重写的区别:

  1. 重载发生在一个类当中方法之间的关系,重写发生在父类和子类之间。
  2. 重载的方法名必须相同,重写的方法名相同且返回值类型必须相同。
  3. 重载的参数列表不同,重写的参数列表必须相同。
  4. 重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围。(子类重写方法大于父类被重写方法)
  5. 重载是编译时的多态性,重写是运行时的多态性。
  6. 方法重载是一个类的多态性的表现,而方法重写是子类与父类的一种多态性表现。

(多态是一个类需要表现出多种形态,子类重写父类的方法,使子类具有不同的方法实现)


面试题:重载(Overload)和重写(Override)的区别?

答:方法的重载和重写都是实现多态的方式,区别在于,方法的重载是实现编译时的多态性,而方法的重写是实现运行时的多态性。重载发生在一个类当中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者各不同)则视为重载;重写发生在子类和父类之间,重写要求子类被重写的方法与父类被重写的方法有相同的参数列表,有兼容的返回类型,比父类被重写的方法更好访问,不能比父类被重写的方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中方法的重载和重写 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • StoreUpgrader$UnexpectedUpgradingStoreVersionException: Not possible to upgrade a store with version

    Caused by org neo4j kernel impl storemigration StoreUpgrader UnexpectedUpgradingStoreVersionException Not possible to up
  • 【IT】计算机体系结构

    https edu 51cto com center course user get study course 解释型语言 在计算机资源受限制的嵌入式计算机上 单片机等 效果不好 因此在嵌入式开发中 更多的还是使用c c 这种 解释型语言
  • 过河卒 蓝桥杯 755

    题目描述 如图 A 点有一个过河卒 需要走到目标 B 点 卒行走规则 可以向下 或者向右 同时在棋盘上的 C 点有一个对方的马 该马所在的点和所有跳跃一步可达的点称为对方马的控制点 例如上图 C 点上的马可以控制 99 个点 图中的 P1
  • java实现rabbitmq消息队列

    1 rabbitmq常用的五种模型 基本消息模型 基本消息模型就是 一个生产者丶默认交换机丶一个队列丶一个消费者 work消息模型 work消息模型就是 一个生产者丶默认交换机丶一个队列丶多个消费者 fanout广播模式 发布 订阅模式 f
  • Powershell无法使用conda activate的问题

    主要引起的原因是Powershell使用Conda init失败 问题主要出现在中文系统中 特别与onedrive开启了 文档同步 有关 可以看到 最后两行生成了配置文件 用以启动conda 并在onedrive上 但是 onedrive中
  • 搭建prometheus+grafana监控系统

    prometheus简介 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 自2012年成立以来 许多公司和组织都采用了Prometheus 该项目拥有非常活跃的开发人员和用户社区 现在 它是一个独立的开源项
  • 计算机相关专业结业课题推荐及答辩技巧,加关喔!

    计算机相关专业结业课题推荐及答辩技巧 是不是还在为选题而烦恼 本文是提供一些计算机 软件 通信 电子等 相关专业大四选题推荐及一些答辩技巧 供给大家学习和参考 预祝各位看官学业进步 前程似锦 创作不易 帮忙点赞 收藏 好评哦 一 整个学年设
  • @JsonProperty注解解析

    1 概述 来源 JsonPrpperty是jackson包下的一个注解 详细路径 com fasterxml jackson annotation JsonProperty 作用 JsonProperty用在属性上 将属性名称序列化为另一个
  • 华为OD机试真题- 统计匹配的二元组个数【2023Q2】【JAVA、Python、C++】

    题目描述 给定两个数组A和B 若数组A的某个元素A i 与数组B中的某个元素B j 满足 A i B j 则寻找到一个值匹配的二元组 i j 请统计在这两个数组A和B中 一共存在多少个这样的二元组 输入描述 第一行输入数组A的长度M 第二行
  • 深度学习--Pytorch构建栈式自编码器实现以图搜图任务(以cifar10数据集为例)

    Pytorch构建栈式自编码器实现以图搜图任务 搞清楚pytorch与tensorflow区别 pytorch tensorflow 搞清楚栈式自编码器的内部原理 效果图 代码及效果图 欠完备编码器 卷积栈式编码器 栈式编码器 本文旨在使用
  • ssm项目tomcat正常启动,首页不能访问的问题分析

    遇到这种情况的我们可以从以下几方面进行问题的排查 1 首先出现这种问题一般都是springmvc xml不能正常读取 也就是说文件路径不正确 是否打了war包 lib包是否存在 web xml路径是否正确
  • 动态渲染 echarts 饼图(vue 2 + axios + Springboot)

    目录 前言 1 项目搭建 1 1 前端 1 2 后端 2 后端数据渲染前端 2 1 补充1 在 vue 中使用 axios 2 2 补充2 Springboot 处理跨域问题 2 3 修改前端代码 2 3 1 修改饼图样式 2 3 2 调用
  • Fast-ReID 训练自己的数据集调优记录(一)

    Fast ReID前期准备 文章目录 Fast ReID前期准备 前言 一 Fast ReID 介绍 Fast ReID 特点 FastReID 架构 二 Fast ReID 复现 前言 FastReID 是一个 SOTA 级的 ReID
  • Linux开放普通用户使用winscp上传文件和禁止root用户登录

    鉴于使用root用户操作系统有诸多风险 也给网络黑客暴力破解服务器密码可乘之机 于是决定禁用root用户远程登录系统 可是禁用root用户登录系统也带来一个问题 那就是root用户登录不了WinScp 也就没办法上传文件了 这还了得 这会给
  • qt中加载qss样式不生效的问题

    前提是你能正确加载 而且 你试着将你的qss后缀改成css 发现能生效 但是后缀改成qss没有生效 这个原因就是字符编码的问题了 需要改成utf 8才行 使用notepade 来改是一种方式 参考博客 QT 避坑指南 QSS文件引入及解决自
  • Allegro使用总结-查看Layout基本操作:

    好久没用CSDN写过笔记了 没想到无意间打开 编辑器更新啦 以前巨难用的 富文本编辑器 终于改观了 变的好像语雀 1 视图 画面操作 a 画面缩放 Zoom F11 F12 或 鼠标滚轮 补充 Zoom分辨率调节 Setup user pr
  • Unity2019_寻路系统

    简单导航寻路功能 选定为静态网格导航 Windows gt Ai gt Navigation 点击烘焙 角色上挂一个导航网格组件 挂上脚本 鼠标点击位置设置为导航的终点 using UnityEngine using UnityEngine
  • admin-lte+ng-bootstrap组合开发之modal弹层不显示

    在用admin lte做前端页面框架做开发 需要用到弹出层效果时 看到ng bootstrap中有Modal实现弹层效果 步骤如下 1 安装和配置ng bootstrap 具体见 https www jianshu com p 690080
  • Qt

    Qt UDP广播通信的使用 实战项目使用案例 1 UDP广播介绍 UDP广播地址固定IP地址为 XXX XXX XXX 255 如果向全网段发送广播消息 那么广播地址为 255 255 255 255 如果向单个网段发送广播消息 例如你的I
  • Java中方法的重载和重写

    重载是在同一个类中的具有相同方法名 不同参数 个数 类型 顺序 的方法的定义 构造方法 普通方法 抽象方法都可以重载 重写是在子类继承父类的时候重写 在子类重写的方法名必须和父类的方法名完全相同 可以用 Override检查是否是重写方法