Java中方法覆盖与方法重载的区别

这篇文章给大家分享的是有关Java中方法覆盖与方法重载的区别的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

10年积累的网站设计制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有开封免费网站建设让你可以放心的选择与我们合作。

方法签名

方法签名是指方法的参数类型,顺序和个数.不包含方法名称.

重载

重载必须满足以下条件

方法名 相同

方法的参数类型,个数和顺序至少一项不同

方法的返回类型可以不同

方法的访问权限修饰符可以不同

覆盖

如果在子类中定义的一个方法,其名称,返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么子类覆盖了父类的方法。
 覆盖必须满足以下条件:

子类方法的名称、参数签名和返回类型必须与父类方法保持一致。

子类方法不能缩小父类方法的访问权限。

如果没有这个限制,会与java语言的多态机制发生冲突。

  //创建父类型的变量,引用子类的实例
  Parent parent = new Child();
  //调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法
  parent.method();

子类方法不能抛出比父类方法更多的异常.子类方法抛出的异常必须与父类方法抛出的异常相同,或者父类方法抛出的异常类是父类方法抛出异常类的子类.

方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间.在同一个类中方法只能被重载,不能被覆盖.

父类的静态方法不能被子类覆盖为非静态方法.

父类的非静态方法不能被子类覆盖为静态方法

父类的私有方法不能被子类覆盖

父类的非抽象方法可以被子类覆盖为抽象方法

异同

1、相同点

方法名要保持一致

2、不同点

方法覆盖要求参数签名一致,而方法重载要求参数签名必须不一致.

覆盖要求返回类型一致,或者子类方法返回类型小于父类方法,重载对此不做限制.

覆盖只能用于子类覆盖父类的方法,重载用于同一个类的所有方法(包括从父类中继承而来的方法).

覆盖对方法的访问权限和抛出异常有要求,重载不做限制.

父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次.

感谢各位的阅读!关于Java中方法覆盖与方法重载的区别就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

当前标题:Java中方法覆盖与方法重载的区别
标题网址:https://www.cdcxhl.com/article48/ihshep.html

成都网站建设公司_创新互联,为您提供建站公司网站设计公司网站策划小程序开发搜索引擎优化网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设