首页

文章

重载跟重写有什么区别?

发布网友 发布时间:2022-03-22 23:44

我来回答

5个回答

热心网友 时间:2022-03-23 01:13

重写与重载的区别
方法重载,就是在一个类中有好几个方法,它们的方法名都一样,但参数不一样,返回的值也可以一样。
java的重写,是指在子类中对父类的某方法进行重新定义,其子类的该方法名以及参数位置和个数均与父类相同,从而在调用子类的该方法时,不会执行父类的方法.如果在父类中以final定义的方法,在子类中无法重写.
重写的主要优点是能够定义某个子类特有的特征:
如:
public class Father
{
public void speak()
{
System.out.println("Father");
}
}
public class Son extends Father
{
public void speak()
{
System.out.println("son");
}
}
这也叫做多态性,重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法,

当上例中 Father类 speak()方法被private时,Son类不能重写 Father类 speak()方法,此时Son类 speak()方法相当与在Son类中定义的一个speak()方法.
Father类 speak()方法一但被final时,无论该方法被public,protected及默认所修饰时,Son类根本不能重写 Father类 speak()方法,试图编译代码时,编译器会报错.例:
public class Father
{
fianl public void speak()
{
System.out.println("Father");
}
}
public class Son extends Father
{
public void speak()
{
System.out.println("son");
}
}//编译器会报错.

Father类 speak()方法被时默认修饰时,只能在同一包中,被其子类被重些,如果不在同一包则不能重写.
Father类 speak()方法被时protoeted时,不仅在同一包中,被其子类被重些,还可以不同包的子类重写.

重写方法的规则:
1.参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载.
3.访问修饰符的*一定要大于被重写方法的访问修饰符(public>protected>default>private)
4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如,
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常.

而重载的规则:
1.必须具有不同的参数列表;
2.可以有不同的返回类型,只要参数列表不同就可以了;
3.可以有不同的访问修饰符;
4.可以抛出不同的异常;

重写和重载的区别在于:

重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值.

用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般

热心网友 时间:2022-03-23 02:31

重写方法的规则:
1.参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载.
3.访问修饰符的*一定要大于被重写方法的访问修饰符(public>protected>default>private)
4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如,
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常.

而重载的规则:
1.必须具有不同的参数列表;
2.可以有不同的返回类型,只要参数列表不同就可以了;
3.可以有不同的访问修饰符;
4.可以抛出不同的异常;

热心网友 时间:2022-03-23 04:23

重载就是在同一个类中,方法名相同,参数列表不同。参数列表不同包括,参数的个数不同,参数类型不同等。
重写就是子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法

热心网友 时间:2022-03-23 06:31

方法重载:
1.必须在同一个类里面
2,方法名相同
3。参数类型不同
如:public void test(int i,int j){}和public void test(int i,float j){}
4.参数数目不同
如:public void test(int i){}和public void test(int i,int j){}
5.和方法的返回值无关
如:public int test(int i){}和public void test(int i,int j){}也属于方法重载

方法重写是指重写父类的.
1.类必须继承了父类才可以重写父类的方法;
2.必须和父类的方法的返回值,参数列表和方法名一样才算重写!

热心网友 时间:2022-03-23 08:55

重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。   

重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。

ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 重载与重写的区别 简述方法重载和方法重写的区别 java中重载和重写的区别是什么? 方法重载和重写的区别 重载 和 重写 的区别 重载和重写有什么区别?有什么相似之处? 重写和重载的区别 重载和重写有什么区别? 请简述重载和重写的区别 重载和重写的区别 退出腾讯视频里的青少年年守护模式不知道密码怎么办? 腾讯视频的青少年模式怎么关 腾讯视频青少年模式忘记密码了怎么办 腾讯视频怎么关闭青少年模式在哪里输入密码,怎样退出? 手机(腾讯视频)为什么没有小屏模式?怎么设置 腾讯视频青少年模式时间怎么修改 腾讯极光tv少儿限免卡用不了 如何关闭儿童模式? 关闭腾讯视频青少年模式在哪里输入密码,怎样退出 电视腾讯视频怎么退出少儿模式 java 重载和重写的区别 函数重载和重写的区别 方法的重写与重载的区别 重载和重写有什么区别 C++重写和重载的区别 请描述java重载和重写的区别 没有话费的时候流量可以用吗? 话费没了还能用流量不? 充了流量但手机没话费,流量可以用吗? 中国电信没话费还可以用流量吗? 手机没话费了可以用流量吗? 如果手机没话费了那还能使用流量吗 欠费了流量可以正常使用吗? 手机没有话费 流量还能用吗 手机欠费了,还能上网我用流量吗? 联通的手机没话费了流量还能用吗 如果手机没话费了那还能使用流量吗? 手机没话费流量还能上网吗? 话费欠费了,但流量还有可以继续使用流量吗? 手机没话费也没有无线网,还可以用流量上网吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com