方法重写和重载的区别

article/2025/10/12 22:50:23

一、方法重写(0veriding)

在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量。

子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这样的一种操作方法称为重写,也叫称为覆写或覆盖。

重写体现了Java优越性,重写是建立在继承关系上,它使语言结构更加丰富。在Java中的继承中,子类既可以隐藏和访问父类的方法,也可以覆盖继承父类的方法。

在Java中覆盖继承父类的方法就是通过方法的重写来实现的。所谓方法的重写是指子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型。

这样,就可以实现对父类方法的覆盖。如果子类将父类中的方法重写了,调用的时候肯定是调用被重写过的方法,那么如果现在一定要调用父类中的方法该怎么办呢?

此时,通过使用super关键就可以实现这个功能,super关键字可以从子类访问父类中的内容,如果要访问被重写过的方法,使用“super.方法名(参数列表)”的形式调用。

如果要使用super关键字不一定非要在方法重写之后使用,也可以明确地表示某个方法是从父类中继承而来的。使用super只是更加明确的说,要从父类中查找,就不在子类查找了。

 

二、重写规则
在重写方法时,需要遵循以下的规则: 
(一) 父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,否则不能称其为重写而是重载。
(二) 父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。.. 
(三) Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限。编写过Java程序的人就知道,

父类中的方法并不是在任何情况下都可以重写的,当父类中方法的访问权限修饰符为private时,该方法只能被自己的类访问,

不能被外部的类访问,在子类是不能被重写的。如果定义父类的方法为public,在子类定义为private,程序运行时就会报错。

(四) 由于父类的访问权限修饰符的限制一定要大于被子类重写方法的访问权限修饰符,而private权限最小。

所以如果某一个方法在父类中的访问权限是private,那么就不能在子类中对其进行重写。如果重新定义,也只是定义了一个新的方法,不会达到重写的效果。
(五) 在继承过程中如果父类当中的方法抛出异常,那么在子类中重写父类的该方法时,也要抛出异常,

而且抛出的异常不能多于父类中抛出的异常(可以等于父类中抛出的异常)。换句话说,重写方法一定不能抛出新的检查异常,

或者比被重写方法声明更加宽泛的检查型异常。例如,父类的一个方法申明了一个检查异常IOException,在重写这个方法时就不能抛出Exception,

只能抛出IOException的子类异常,可以抛出非检查异常。同样的道理,如果子类中创建了一个成员变量,

而该变量和父类中的一个变量名称相同,称作变量重写或属性覆盖。但是此概念一般很少有人去研究它,因为意义不大。

三、方法重载(Overloading)

方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。
所谓方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。

方法的重载在实际应用中也会经常用到。不仅是一般的方法,构造方法也可以重载。

在方法重载时,方法之间需要存在一定的联系,因为这样可以提高程序的可读性,一般只重载功能相似的方法。

重载是指我们可以定义一些名称相同的方法,通过定义不同的参数来区分这些方法,然后再调用时,Java虚拟机就会根据不同的参数列表来选择合适的方法执行

。也就是说,当一个重载方法被调用时,Java用参数的类型或个数来决定实际调用的重载方法。因此,每个重载方法的参数的类型或个数必须是不同。

虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。

当Java调用一个重载方法是,参数与调用参数匹配的方法被执行。在使用重载要注意以下的几点:
1.在使用重载时只能通过不同的参数列表,必须具有不同的参数列表。

2.不能通过访问权限、返回类型、抛出的异常进行重载。
3.方法的异常类型和数目不会对重载造成影响。
4.可以有不同的返回类型,只要参数列表不同就可以了。
5.可以有不同的访问修饰符。

6.可以抛出不同的异常。

四、方法重写与方法重载的区别

 


http://chatgpt.dhexx.cn/article/8LX75ZSQ.shtml

相关文章

面试官:Java的重写和重载有什么区别?

老读者都知道了,七年前,我从美女很多的苏州回到美女更多的洛阳(美化了),抱着一幅“从二线城市退居三线城市”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意…

JAVA重写和重载的区别

文章目录 [toc] 问: Java 重载与重写是什么?有什么区别?问:Java 构造方法能否被重写和重载?问:下面程序的运行结果是什么,为什么? 问: Java 重载与重写是什么&#xff1f…

matlab 中histogram,hist的用法

x randn(1000,1); edges [-10 -2:0.25:2 10]; h histogram(x,edges);这是指定区间的;第一个是-10,2 histogram参考链接 hist是用区间的作为直方图的中心 hist参考链接

文献引文分析利器HistCite使用教程(附精简易用免安装Pro版本下载)

如果你选修过中国科学技术大学罗昭锋老师的《文献管理与信息分析》,那么你一定不会对HistCite 感到陌生,这是一款非常强大的引文分析工具,可以快速绘制出某个研究领域的发展脉络,快速锁定某个研究方向的重要文献和学术大牛&#x…

文献综述搜索利器——HistCite

HistCite 1. LCR2. GCS3. LCS4. CR5. 说明6. 参考 1. LCR Local Cited References is the number of references citing local papers. By clicking on “LCR”,you can sort the collection by this score. By clicking on the LCR number, you can see a list of thepapers …

2021-01-19(学堂云)文献管理与信息分析期末考卷

(学堂云)文献管理与信息分析期末考卷 1为知笔记中群组的核心功能是?2以下哪种软件可以帮我们追踪到最新资讯?3连接goole的时候,输入http://google.com,网页会自动跳到http://google .com.hk,解决方案是在htttp://google.com后面输入哪三个…

引文分析软件histcite简介

本文写于多年之前。附上能个近期学生写的补充,以及改进版的小程序。 https://zhuanlan.zhihu.com/p/20902898 这是上学期选修我课程的王庆撰写文件,并改写了一下程序,导入更加方便。 附王庆改写的程序下载链接:http://pan.baidu…

HistCite软件导入文献

转自:了凡春秋 上一篇博客介绍了HistCite软件的一些情况和使用中的一个问题的解决方法。这篇说一下这个软件的使用方法吧,其实最关键的就是导入文献,剩下的就是各种排序查看、产生引用关系图锁定重要文献。 HistCite导入的文献必须来自于WoK数…

【学术灯塔】文献可视化分析软件:HistCite、vosviewer、Citespace

相信大家的文献管理效率大大提高。那么在接触一个新研究方向,面对浩如烟海的文献感到无从下手的时候,我们又该如何对文献进行更深度的分析呢?本期,小编就给大家介绍三个文献可视化分析的软件,帮助大家又快又准地锁定该…

文献引文分析利器 HistCite 详细使用教程

如果你选修过中国科学技术大学罗昭锋老师的《文献管理与信息分析》,那么你一定不会对HistCite 感到陌生,这是一款非常强大的引文分析工具,可以快速绘制出某个研究领域的发展脉络,快速锁定某个研究方向的重要文献和学术大牛&#x…

HistCite学习

刚进入到一个新的方向时,需要先读一读这个这个方向的经典文献,并分析一下这个方向的研究现状。一种最常见的做法是下载几篇该方向的综述论文,并通过综述文献的参考文献和被引文献来进一步的挖掘新的文献。但是,这种方法需要读的文献较多,那么有没有更便捷的方式来找到这些…

【工具】文献分析工具histcite的简单使用

查找文献分析方法时候看到的: 图片来源:百度文库 总的操作流程参考自:罗昭锋:引文分析软件histcite简介 1. wos检索 检索结果: 1,360 (来自 Web of Science 核心合集) 您的检索: TS(altimeter OR altimetry ) AND TSgravity时…

HistCite 的使用方法

摘要 读文献自然要读精品,在面对一个陌生领域,如何才能以最快速度定位精品文献呢?本文将详细介绍 HistCite 的使用方法,结合 Web of Science 和 Endnote ,演示如何在几个小时之内,对某个陌生领域的文献进行…

快速进入陌生领域: HistCite 使用教程

快速进入陌生领域: HistCite 使用教程 1. 致谢 1) 罗昭锋老师的课程及资源; 2) 折腾不止(杨蔚的博客) http://www.ztever.com/histcite-manu/ 3) 知乎Tsing的总结 https://zhuanlan.zhihu.com/p/20902898 以下是杨蔚的博客原文&…

HistCite Pro简要使用说明

参考原文&下载地址:https://zhuanlan.zhihu.com/p/20902898 感谢原文大佬开发的脚本!!! 由于原文回答比较长不方便查阅,所以这里把我常用到的功能和使用方法做一个简单的罗列和排版,方便自己查阅&…

Histcite使用

Histcite 1.首先是在web of science中检索关键词,记得要挂学校的VPN 2.更改数据库为核心合集,Histcite只能识别该数据库 3.使用关键词检索,将结果导出为纯文本文件 4.根据以下格式设置导出选项 5.将导出的TXT文件放入Histcite目录下的TXT文…

快速进入核心领域-histcite使用简介

摘要 读文献自然要读精品,在面对一个陌生领域,如何才能以最快速度定位精品文献呢?本文将详细介绍 HistCite 的使用方法,结合 Web of Science 和 Endnote ,演示如何在几个小时之内,对某个陌生领域的文献进行…

科研文献工具Histcite介绍

导师给研究方向,课题就是简单的一句话,几个字,其余的一切都要靠自己摸索,所以会搜索文献是一项极其影响效率和工作质量的技能。 我研一也上过一门类似的讲科研文献检索,整理的课程,老师讲了web of science网…

引文分析软件histcite简介(中科大 罗昭锋)

引文分析软件histcite简介 这是《文献管理与信息分分析》课程内容的一部分。 对于科研工作者来说,除了掌握快速的收集信息和有效管理信息的能力之外,还需要有一定的信息分析能力。譬如,检索某个研究方向,结果文献有上千…