问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

方法的重写与重载的区别

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

我来回答

2个回答

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

一、方法重写(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.可以抛出不同的异常。

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

重写的话,要求参数和返回类型一样吧,就是函数的内部的实现不一样。而重载没有太严格的要求,函数名字一样就可以了吧。
重载和重写的区别

1、定义不同。重载是定义相同的方法名、参数不同,重写是子类重写父类的方法。2、范围不同。重载是在一个类中,重写是子类与父类之间的。3、多态不同。重载是编译时的多态性,重写是运行时的多态性。4、参数不同。重载的参数个数、参数类型、参数的顺序可以不同,重写父类子方法参数必须相同。5、...

重载和重写有什么区别

二、规则上的不同:1、重载的规则:①必须具有不同的参数列表。②可以有不同的访问修饰符。③可以抛出不同的异常。2、重写方法的规则:①参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。②返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。③访问修饰...

重写和重载的区别

1、定义不同 重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。重写是子类重写父类的方法,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。2、范围不同 重载...

重写和重载的区别

重写和重载的区别有定义、范围、多态、返回、参数以及修饰不同。1、定义不同:重载是定义相同的方法名,参数不同,重写是子类重写父类的方法。2、范围不同:重载是在一个类中,重写是子类与父类之间的。3、多态不同:重载是编译时的多态性,重写是运行时的多态性。4、返回不同:重载对返回类型没有...

方法重写和方法重载的区别?重载可以改变返回值类型吗? 注意事项是什么...

方法重写:子类中出现和父类中一模一样的方法声明的方法。方法重载:同一个类中,出现方法名相同,参数列表不同的方法。跟返回值无关。重载可以改变返回值类型,因为他跟返回值无关。重写注意事项:(1)父类中的私有方法不可以被重写 (2)子类方法访问权限一定要大于父类的访问权限 (3)静态的方法只能...

重载和重写的区别

1、定义:重载是指在同一个类中使用相同的方法名,但参数列表不同,以实现不同的功能;而重写是指在子类中通过继承父类的方法,并对其进行修改或重新实现。2、发生的位置:重载发生在同一个类中,而重写发生在子类中。3、参数列表:重载的方法具有不同的参数列表,可以有不同的参数类型、个数或...

方法重载和重写的区别

Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表,两者不同主要体现在:目的不同、范围不同、参数不同、多态性不同、返回类型不同。1、目的不同 overload用于增加...

方法的重写与重载的区别

只能抛出IOException的子类异常,可以抛出非检查异常。同样的道理,如果子类中创建了一个成员变量,而该变量和父类中的一个变量名称相同,称作变量重写或属性覆盖。但是此概念一般很少有人去研究它,因为意义不大。三、方法重载(Overloading)方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法...

重载和重写有什么区别?

重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private...

方法重载和重写的区别

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同 。重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法。重写Overriding是父类与子类之间多态性的一种表现,重载Over...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
北海市火车站公安临时办证点几点上班 浓缩的都是精华之大海——拉利玛 浓缩的都是精华作文 梦到捡到钱是什么预兆周公解梦(梦见自己捡钱了周公解梦) 孔明锁怎么拆更加省力? ...的,唱歌特别显累。现在练气息发声,感觉遇到了新的问题。是不是_百度... 交了首付没签购房合同是不是可以退房 财付通的支付密码是什么 苹果iPad怎么修改键盘大小 海尔空调f1怎么解决? 函数重载和重写的区别 java 重载和重写的区别 重载跟重写有什么区别? 重载与重写的区别 简述方法重载和方法重写的区别 java中重载和重写的区别是什么? 方法重载和重写的区别 重载 和 重写 的区别 重载和重写有什么区别?有什么相似之处? 重写和重载的区别 重载和重写有什么区别? 请简述重载和重写的区别 重载和重写的区别 退出腾讯视频里的青少年年守护模式不知道密码怎么办? 腾讯视频的青少年模式怎么关 腾讯视频青少年模式忘记密码了怎么办 腾讯视频怎么关闭青少年模式在哪里输入密码,怎样退出? 手机(腾讯视频)为什么没有小屏模式?怎么设置 腾讯视频青少年模式时间怎么修改 腾讯极光tv少儿限免卡用不了 重载和重写有什么区别 C++重写和重载的区别 请描述java重载和重写的区别 没有话费的时候流量可以用吗? 话费没了还能用流量不? 充了流量但手机没话费,流量可以用吗? 中国电信没话费还可以用流量吗? 手机没话费了可以用流量吗? 如果手机没话费了那还能使用流量吗 欠费了流量可以正常使用吗? 手机没有话费 流量还能用吗 手机欠费了,还能上网我用流量吗? 联通的手机没话费了流量还能用吗 如果手机没话费了那还能使用流量吗? 手机没话费流量还能上网吗? 话费欠费了,但流量还有可以继续使用流量吗? 手机没话费也没有无线网,还可以用流量上网吗? 为什么手机停机没话费了还可以用流量? 手机没话费怎么还可以用数据流量, 手机话费没了,流量是不是暂时也用不了了?
  • 焦点

最新推荐

猜你喜欢

热门推荐