星空网 > 软件开发 > Java

重载和覆盖

说到java中的重载和覆盖呢,大家都很熟悉了吧,但是呢我今天就要写这个。

本文主题:

  一.什么是重载

  二.什么是覆盖

  三.两者之间的区别

重载(overload):

  在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

  即当函数同名时,只看参数列表。和返回值类型没关系。

 

  重载使用的时候需要注意:

  1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序。

  2、方法的异常类型和数目不会对重载造成影响。

  3、对于父类来说,子类可以重载与继承父类中的方法同名的方法,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

覆盖(override):

  当子父类中出现了一模一样的方法时,建立子类对象会运行子类中的方法。好像父类中的方法被覆盖掉一样。所以这种情况,是函数的另一个特性:覆盖。

  什么时候使用覆盖呢?

  当子类继承父类时,父类的功能内容需要修改时,可以通过覆盖来实现

  在方法覆盖时,注意两点:

  1、子类覆盖父类时,必须要保证,子类方法的权限必须大于等于父类方法权限可以实现继承。否则,编译失败。

  2、覆盖时,要么都静态,要么都不静态。 (静态只能覆盖静态,或者被静态覆盖)YES

  3、被final修饰的方法是一个最终方法,不可以被覆盖。

  4、子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。

  5、子类方法的访问权限只能比父类的更大或者等于,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

重载和覆盖的区别:

  1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。 
  2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。 
  3、覆盖要求参数列表相同;重载要求参数列表不同。 
  4、覆盖关系中,调用那个方法体,是根据对象的类型来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

 

 




原标题:重载和覆盖

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

2023年韩国网购交易额创新高,中国电商进口首超美国:https://www.kjdsnews.com/a/1739078.html
红海陷入僵局,海盗坐收渔翁之利?:https://www.kjdsnews.com/a/1739079.html
亚马逊(AMZN.US)23Q4主营业务盈利加速修复 AWS收入增速小幅回暖:https://www.kjdsnews.com/a/1739080.html
《2024年沃尔玛市场报告》:https://www.kjdsnews.com/a/1739081.html
短视频账号怎样快速起号? :https://www.kjdsnews.com/a/1739082.html
搜索流量将有所调整!亚马逊这个新功能将影响未来listing布局:https://www.kjdsnews.com/a/1739083.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
延边酒店(附近旅馆住宿50元):https://www.vstour.cn/a/409226.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流