成都网站建设设计

将想法与焦点和您一起共享

Java中方法重载和方法重写的原理是什么-创新互联

本篇文章给大家分享的是有关Java中方法重载和方法重写的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比钟祥网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式钟祥网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖钟祥地区。费用合理售后完善,10多年实体公司更值得信赖。

一、方法重写(0verride)

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

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

所以,所谓方法的重写是指子类中的方法和父类中继承的方法有完全相同的返回值类型、方法名、参数个数和参数类型。这样就可以实现对父类方法的覆盖。

如果子类将父类的方法重写了,调用的时候肯定是调用被重写过的子类的方法,但是如果要还要继续调用父类的方法我们该怎么做呢?

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

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

重写有以下规则

(1).父方方法的参数列表必须完全与被子类重写的方法的参数列表相同,否则不能称其为重写而是重载。

(2).父类返回的类型必须与被子类重写的方法的参数列表相同,否则不能称其为重写而是重载。

(3).Java 中规定,被子类重写的方法不能拥有比父类方法更加样额的访问权限。

编写过Java程序的人应该都知道,父类的中方法并不是在任何情况下都可以重写的,当父类中的方法访问权限修饰符为 private时,该方法只能被自己的类访问,不能被外部访问,在子类是不能被重写的。如果定义父类的方法为 public,在子类定义为private 程序运行就会出错。

(4).由于父类的访问权限修饰符限制一定要大于被子类重写的方法的访问权限修饰符,而 private 权限最小,所以如果某一个方法在父类的访问权限是 private 时,那么就不能再子类中对其进行重写。如果重写定义,也只是定义了一个新的方法,不会达到重写的效果。

(5).在继承过程中如果父类当中的方法抛出异常,那么在子类中重写父类的该方法时,也要抛出异常。而且抛出的异常不能多于父类中抛出的异常(可以等于父类中抛出的异常)。换句话说,重写方法一定不能抛出新的检查异常,或者比被重写方法声明更加宽泛的检查异常。

例如:父类的一个方法申明了一个检查异常 IOException ,在重写这个方法时就不能抛出 Exception,只能抛出 IOException的子类异常,可以抛出非检查异常。同样的道理,如果子类创建了一个成员变量,而该变量和父类中一个变量名称相同,称作变量重写或者属性覆盖(这个概念一般很少人研究,意义不大)。

二、方法重载(ordeloading)

概念:所谓的方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。

方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们的不同个数和参数来决定具体使用哪个方法,这就是Java中的多态。

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

我们可以定义一些名称相同的方法,再通过定义不同的参数来区分方法,然后在调用时,Java 虚拟机就会根据不同的参数列表来选择合适的方法执行。也就是说,当一个重载的方法被调用时,Java 用参数类型或者个数来决定世界调用的重载方法。因此,每个重载方法的参数的类型或者个数必须不同。

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

当Java 调用一个重载方法时,参数与调用参数匹配的方法被执行。在使用重载要注意以下几点:

(1).在使用重载时只能通过不同的参数列表,必须具有不同的参数列表

(2).不能通过访问权限、返回类型、抛出的异常进行重载

(3).方法的异常类型和数目不会对重载造成影响。

(4).可以有不同的返回值类型,只要参数列表不同就可以

(5).可以有不同的访问修饰符

(6).可以抛出不同的异常

三、方法重写和重载的区别

Java中方法重载和方法重写的原理是什么

以上就是Java中方法重载和方法重写的原理是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联网站建设公司行业资讯频道。

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:Java中方法重载和方法重写的原理是什么-创新互联
网址分享:http://chengdu.cdxwcx.cn/article/pseig.html