java面试题:重写和重载的区别——详解
重写和重载的区别
一.重写
1. 重写概念
- 重写是父类与子类中的多态性,子类可以继承父类中的方法并进行重写,但是要保证几点没有变
1)方法返回值类型不变
2)参数列表不变
3)方法名不变 - 满足了这三点之后,子类中父类的方法就被覆盖了,如果想要调用父类的方法,用super关键字
2.重写规则
- 重写也是有一定的规则的,否则会报错
- 重写规则:
1)参数列表必须完全与被重写的方法相同;
2)返回类型必须一直与被重写的方法相同;
3)访问修饰符的权限一定要大于等于父类方法的访问修饰符;
4)重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常,譬如父类方法声明了一个检查异常 IOException,在重写这个方法时就不能抛出 Exception,只能抛出 IOException 的子类异常,可以抛出非检查异常。
二.重载
1.重载概念
- 重载也是多态性的一种表现,即同一类中存在多个同名函数,但是参数列表的长度和参数类型不同
- 调用方法时会根据传入的参数个数和参数类型来选择调用哪个方法
- 注意: 不能以返回值类型作为函数重载的区分标志
原因其实很简单:以下两个方法如何区分?这两个方法是无法通过编译的!会报错
double sqrt(double do){return...}float sqrt(double do){return...}
2.重载规则
- 参数个数可以不同
- 参数类型可以不同
- 对于返回值类型,其实重载没有要求,但是实际上在编写代码过程中,可以看作必须返回值类型相同,因为不同就不能称为重载了,就无法区分了!
三.重写和重载的区别和联系
- 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
java面试题:重写和重载的区别——详解相关推荐
- Java中方法重写和重载的区别
一.方法的重载 - 重载(overloading) 是在一个类里面,方法名字相同,而参数不同.返回类型可以相同也可以不同.每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表. 重载的规则 ...
- java ==和===_java中==和equals的区别详解
分析前基础了解: 一)JVM把内存划分成两种:一种是栈内存,一种是堆内存. ①在函数中定义的一些基本类型的变量和对象的引用变量(变量名)都在函数的栈内存中分配. ②当在一段代码块定义一个变量时,Jav ...
- java之public class和class声明区别详解 (转)
在编写类的时候可以使用两种方式定义类: public class定义类: class定义类: 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名 ...
- java+yeild+sleep_java之yield(),sleep(),wait()区别详解-备忘笔记[转]
标签: 1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据. ...
- java weakhashmap_解析WeakHashMap与HashMap的区别详解
WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值, 见实例:此例子中声明了两个Map对象,一个是HashMap,一个是WeakH ...
- Java 运算符中 前++ 和后++ 的区别详解
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
- Java 方法重写与重载的区别 示例 重载多数相加求和 重写toString()和equals()
Java 方法重写与重载的区别 重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载 重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写. 名称\属性 E ...
- Java—重写与重载的区别
Java-重写与重载的区别 这几周开始看Java的知识,发现有一个有趣的现象就是,前两天刚看过的知识点,过一天又忘掉了.而且很多东西堆在脑子里像浆糊一样.所以边学习边总结是很重要的,今天想写一篇关于重 ...
- java重写和重载 关键字_Java重写和重载的区别
一.重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 二.重载(Overload) 重载(overloading) 是 ...
- 【Java基础】重写与重载
为什么80%的码农都做不了架构师?>>> 重写(Override): 定义:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类 ...
最新文章
- 2022-2028年中国纤维增强聚合物行业市场调查研究及发展前景规划报告
- 欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常
- ASP.NET程序中常用的三十三种代码(转载)
- 从任何兼容 TWAIN 的设备获取图象的控件Dynamic Web TWAIN
- draw.io二次开发(2)文件解读
- 不想当全栈的设计师不是_但我不想成为产品设计师
- SonarQube中的Maven项目的单元和集成测试报告
- java 搭建 web服务器 socket实现
- 《算法竞赛进阶指南》数论篇
- 微软11月补丁星期二值得关注的6个0day及其它
- 我什么时候应该使用访客设计模式? [关闭]
- 中粮营销致远A6应用探秘:高速审批执行,营销策略落地
- 在顺丰的历史上,扩大规模的资金来源
- 家庭理财,轻松记账修改收支记录这样操作
- 智力过河游戏c语言,Flash AS代码实现智力过河小游戏
- html控件透明与背景透明
- Vue中 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
- 调度增益控制基础概念Gain Scheduling Basics学习笔记
- 容器技术---(一)Docker
- 2000-2020年各省固定资本存量数据
热门文章
- Equalizer 分布式渲染 在一同一台电脑启动多窗口
- CPU--cache和register的区别
- WPS在Excel中复选选中框复制粘贴后变成R解决办法
- 兑现2021年合肥市高新区建设世界一流高科技园区政策部分条款申报指南
- 互联网晚报 | 11月10日 星期三 | 华为捐赠欧拉开源操作系统;微信支持导出个人信息;12306上线铁水联运服务...
- 特斯拉如何饕餮中国红利?
- 慕课网-前端课程学习完成
- redis读缓存超时故障处理
- SQL注入环境搭建及多种注入类型测试实验
- 建立完善的员工晋升机制_员工晋升管理制度精选5篇