Java中Overriding)和Overload是什么意思?

2023-10-30

一、解释

  • 方法覆盖(Overriding)  也叫做(方法重写) :重写发生在子类和父类之间,具体实现是子类对父类中一个可访问的(Private 修饰的方法不可被继承)方法的重写,保证其方法名参数的个数,参数的类型不变。
  • 重载 (Overload): 发生在一个类中,两个或者多个方法具有相同的方法名,参数列表不同。具体表现为多个方法有相同的方法名,但是其参数的个数或者参数的类型各不相同。记住与返回值的类型无关。

        方法重载是编译时期的多态,而方法重写是运行时期的多态。



二、使用原则

方法重写的原则:

1.重写方法的方法名称、参数列表必须与原方法的相同,返回值类型可以相同也可以是原类型的子类型(从Java  SE5开始支持)

2.重写方法不能比原方法访问性差(即访问权限不允许缩小)。

3.重写方法不能比原方法抛出更多异常。

4.被重写的方法不能是final类型,因为final修饰的方法是无法重写的。

5.被重写的方法不能是final类型,因为final修饰的方法是无法重写的。

6.被重写的方法不能为 static 。如果父类中的方法为静态的,而子类中的方法不是静态的,但是两个方法除了这一点外其他都满足重写条件,那么会发生编译错误;反之亦然。及时父类和子类中的方法都是静态的,并满足重写条件,但是任然不会发生重写,因为静态方法是在编译的时候把静态方法和类的引用类型进行匹配。

7.重写是发生在运行时的,因为编译期编译器不知道并且没有办法确定该去调用哪个方法,JVM 会在代码运行的时候做出决定。

 

方法重载的原则:

1.方法名必须相同。

2.参数列表必须不同(个数不同、类型不同、参数类型排列顺序不同等)。

3.方法的返回类型可以相同也可以不同。

4.仅仅是返回类型不同不足以构成重载。

5.重载时发生在编译时期,因为编译器可以根据参数的类型来选择使用哪个方法。



 

三、区别

 

重写和重载的区别:

1.方法重写要求参数列表必须一致,而方法重载要求参数列表必须不一致。

2.方法重写要求返回类型必须一致(或为其子类型),方法重载对此没有要求。

3.方法重写只能用于子类方法重写父类的方法,方法重载用于同一个类中的所有方法。

4.方法重写对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。

5.父类的一个方法只能被子类重写一次,而一个方法可以在所有的类中可以被重载多次。

6.重载时编译时多态,重写是运行时多态。

 

 

 

 

下面没了,可以不用购买,我也知道你不会买








存储







存储

 

 

 

 

 

 

 

 

 

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

Java中Overriding)和Overload是什么意思? 的相关文章

  • 清理码头 - 删除“不必要”的东西

    我习惯用Jetty http jetty codehaus org jetty 作为我的网络容器 我对我做了什么安装步骤得到原始的焦油球并且清理一些目录和文件从中 我在这里想提出的是 您通常从 Jetty 中删除什么以在生产 登台环境中使用
  • 未找到 MessageSource 的 ResourceBundle [消息]:找不到基本名称消息的包

    在 applicationContext xml 中 我定义了 MessageSource 如下所示
  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi

随机推荐

  • 常用LVDS接口LCD屏

    1 常用LVDS接口LCD屏 具体请参考网站 LCD显示 配套软硬件模块 英创 各种屏实物介绍和手册 英创公司ESMARC系列中的ESM6802 ESM7000等主板型号可以直接引出LVDS信号和显示屏连接 我们提供了一些现成的屏幕模块 客
  • Pytorch中如何加载数据、Tensorboard、Transforms的使用

    一 Pytorch中如何加载数据 在Pytorch中涉及到如何读取数据 主要是两个类一个类是Dataset Dataloader Dataset 提供一种方式获取数据 及其对应的label 主要包含以下两个功能 如何获取每一个数据以及lab
  • RHCE-----------配置DNS服务------实操练习

    安装bind 关闭防火墙和selinux 启动named服务 关闭防火墙 重启named服务 编辑配置文件 重启服务 删除客户端本地hosts文件域名解析配置 将DNS服务器设为本机IP
  • 论文添加引用遇到问题

    应该选择红圈里的
  • 剑指 Offer 36. 二叉搜索树与双向链表

    剑指 Offer 36 二叉搜索树与双向链表 难度中等285 输入一棵二叉搜索树 将该二叉搜索树转换成一个排序的循环双向链表 要求不能创建任何新的节点 只能调整树中节点指针的指向 为了让您更好地理解问题 以下面的二叉搜索树为例 我们希望将这
  • 机器学习实战2(决策树篇)

    目录 1 决策树 2 决策树的构造 3 决策树的可视化 4 测试和存储决策树 1 决策树 你是否玩过二十个问题的游戏 游戏的规则很简单 参与游戏的一方在脑海里想某个事物 其他参与者向他提问题 只允许提20个问题 问题的答案也只能用对或错回答
  • QList(增删改查)示例

    特点 支持随机访问 其界面也是基于索引的 在中间的任意一端插入或移除项都是非常快速的 注 访问QList中的值时 尽量采用value int i 因为value查不到此值时会返回一个默认值0 而at int i 则会引起崩溃 并且at返回的
  • QT字符串以16进制接收再转化为固定位数的二进制(QT系列11)

    代码 bool OK QString str 1E QString str1 16进制转化 int val str toInt OK 16 qDebug lt
  • GitHub Copilot 体验

    LHS 475 b NASA s Webb Confirms Its First Exoplanet NASA 介绍 什么是GitHub Copilot GitHub Copilot是由GitHub和OpenAI公司共同开发的基于云的AI编
  • Volatile的其他特性

    2 1 volatile总体概览 在上一节中 我们已经研究完了volatile可以实现并发下共享变量的可见性 volatile除了保证可见性外 volatile还具备如下一些突出的特性 volatile的原子性问题 volatile不能保证
  • 编写程序对给定的有向图(不一定连通)进行深度优先遍历_TypeScript 实战算法系列(七):实现图的遍历...

    本文由图雀社区认证作者 神奇的程序员 写作而成 图雀社区将连载其TypeScript 实战算法系列 点击阅读原文查看作者的掘金链接 感谢作者的优质输出 让我们的技术世界变得更加美好 前言 有一个图 我们想访问它的所有顶点 就称为图的遍历 遍
  • JSBinding iOS与JS交互(When-iOS-loves-JS)

    What s JSBinding It s Not Hybrid It s NOT a new technology JSBinding 绑定JS和Native JSBinding和HyBrid的对比 原生OC语音和脚本JS语言对比 API
  • v-html 不识别\n解决方法

    在 html 中的一些特殊场景中需要某一段文字遇到 n 就行换行 但是往往加了后没有效果 那是因为html标签不识别 n 认为 n 只是一个普通的文本 解决这种问题通常有以下几种方案 1 利用正则将html的 n换成 br div div
  • Kafka接入

    Kafka接入 1 引入依赖
  • php实现完整区块链,PHP实现区块链BlockChain

    Block Struct class block private index private timestamp private data private previous hash private random str private h
  • 使用zabbix监控avamar【二】

    1 在 使用zabbix监控avamar 一 中介绍了如何设置avamar端 并发送测试消息 本篇将介绍如何在zabbix server端进行配置 2 在zabbix server的snmp trap日志文件中查找刚上传的报警信息 可以看到
  • Js实现复杂计算和简单运算,以及函数传递任意多个参数的参数的方法

    1 实现复杂运算可以通过调用eval 方法进行计算 获取结果 使用eval string 方法 内部对象是string let a eval 1 2 8 6 2 1 console log a 或者写成 var string 1 2 8 6
  • C++ 输出二进制数

    这几天学组成原理 碰到需要输出二进制数的情况 验证a 2 n a gt gt n 我想用高级语言内在的模块实现 程序如下 bitset后面的 lt gt 中的数字 指定输出的位数 include
  • 2023最新一文学会fastdfs单节点部署(含安装包镜像包)

    1 实验环境 镜像版本 麒麟服务器镜像V10SP2 镜像下载地址 链接 https pan baidu com s 11BopM7FsmvUFud D68J7Rg pwd 1234 提取码 1234 安装包下载地址 链接 https pan
  • Java中Overriding)和Overload是什么意思?

    一 解释 方法覆盖 Overriding 也叫做 方法重写 重写发生在子类和父类之间 具体实现是子类对父类中一个可访问的 Private 修饰的方法不可被继承 方法的重写 保证其方法名参数的个数 参数的类型不变 重载 Overload 发生