问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

重载跟重写有什么区别?

发布网友 发布时间:2022-05-01 09:36

我来回答

4个回答

热心网友 时间:2022-06-27 16:01

重写与重载的区别
方法重载,就是在一个类中有好几个方法,它们的方法名都一样,但参数不一样,返回的值也可以一样。
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-06-27 16:01

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

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

热心网友 时间:2022-06-27 16:02

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

热心网友 时间:2022-06-27 16:03

方法重载:
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.必须和父类的方法的返回值,参数列表和方法名一样才算重写!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
济南的冬天赏析 济南的冬天全文赏析 魅蓝Note5#魅蓝3S锁屏就重启是什么原因 ...药?小狗已经三天了不吃不喝还呕吐尿很黄不拉,精神不好去宠物医院化验... 狗狗今天吐了黄水昏昏欲睡 还抽搐给喝了妈咪爱睡了一觉好了也许但还是... ...了开始拉稀,不吃东西,昨天超级没精神,后给喂了点药,今天精神点了... 昨晚狗狗又吐又拉然后我喂了妈咪爱,今天早上没精神的,刚刚又喂了妈 小狗两个月,昨天拉稀不吃饭,我喂了妈咪爱,下午有精神了可那跑着玩。今 ... 国内有哪些生产疫苗的公司?研发、质量管理水平分别如何? 三联恒通(北京)科技发展有限公司怎么样? 什么是三联集团 上海推出老年“专版”健康码,没有健康码老人是否寸步难行? 有人开过东莞移动的,a流量168慢充店铺吗 甘肃银行招聘如何网上注册 银行从业资格考试准考证打印各种问题如何解决 银行从业资格考试怎么打印准考证 银行从业考试的准考证在哪儿打印啊? 2014年银行从业资格考试准考证打印时间是哪天? 银行从业资格考试准考证怎么打印 银行从业考试准考证打印步骤是怎样的 2015年甘肃银行校园招聘准考证打印时间报名信息? 甘肃银行什么时候打印准考证? 梦见以前的好朋友同事来我租的房子看我 踢足球如何防脱水? 在梦中梦见和同性朋友一起找房子,找了两个地方但在看房子的途中坐车去看房时睡着 唉。军训怎么防脱水阿 我买的飞利浦RQ1280CC剃须刀,第一次完全充电的显示数字60,随后在充电数字到53就不充了,然后几次都是53. 飞利浦剃须刀RQ1250、1280cc、1290哪款好? 每天应该怎么喝水 飞利浦剃须刀RQ1280CC这款怎么样? 我该怎么样喝水 开通了网银,在手机上淘宝怎么用。 已经办理了网银。如何才能直接用手机上淘宝购物。 开通了网银,可以用手机淘宝购物么? 平安银行借记卡已开通网银怎么用手机银行在淘宝网上购物 开通手机网银是否可以手机淘宝购物 网银已经开通,要在淘宝上购物,接下去怎么做? 在手机上怎么上淘宝网我开通了网银。 刚刚开通网银,不知道怎样手机淘宝购物。 开通手机银行可以在淘宝买东西吗 2015年熊猫银币50元的封闭纪念币银行发行价2680亏吗 工厂的计件工资是怎么制定的? 劳动法对计件的公司是怎么规定的啊? 您好,我想请教下如何制定计件工资制度 才能提升工人的积极性以及产品的质量。谢谢!! 计件工资制度的制订 千张炒包心菜的做法,千张炒包心菜怎么做好吃 梦见去世的父亲养的牛羊我不让他养,还有几个去世的邻居也在? 梦见老家的养的牛羊怎么回事 包菜炒豆皮怎么做好吃 贫困户令搬迁可以在农村养猪牛羊和种地吗? 过去为啥家家户户一年到头都养猪而不是养牛,羊?