千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java培训分享:java重载和重写的区别

java培训分享:java重载和重写的区别

来源:千锋教育
发布人:wjy
时间: 2022-04-13 09:48:00 1649814480

  在Java学习的过程中,java重载和重写的区别是什么?重载Overloading是一个类中多态性的一种表现;重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。更为详细的区别,千锋小编今天就为大家解答。

  1.Java重载(Overloading)

  (1) 重载Overloading是一个类中多态性的一种表现。方法重载是让类以统一的方式处理不同类型数据的一种方法。多个同名函数同时存在,具有不同的参数个数或者类型。

  (2)Java方法重载,就是在类中创建多个方法,它们同名但不同参数、不同定义。

  多态性:调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。

  (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可相同可不同。无法以返回型别作为重载函数的区分标准。

Java重载和重写的区别

  2.Java重写(Overriding)

  (1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,则该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,不需要重新编写相同的方法。

  但有时子类并不想原本地继承父类的方法,而想做一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

  (2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使super关键字,该关键字引用了当前类的父类。

  (3)子类函数的访问修饰权限不能少于父类的

  动态绑定的内幕:

  1、编译器检查对象声明的类型和方法名,从而获取所有候选方法。尝试把上例Base类的test注释掉,这样再编译就无法通过。

  2、重载决策:编译器检查方法调用的参数类型,从上述候选方法选出唯一一个(其间会有隐含类型转化)。如果编译器找到多于一个或者零个,此时编译器就会报错。试着把上例Base类的test(byte b)注释掉,这时运行结果是1 1。

  3、若方法类型为priavte static final,java采用静态编译,编译器会准确知道具体该调用哪个方法。

  4、当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用对象的实际类型相匹配的方法版本。

  总之,二者显著的特征是重载的参数类型、个数、顺序至少有一个不相同;重写的方法名、参数、返回值相同通过这样的解释,你理解Java重载和重写的区别了么?如果在java学习的过程中遇到问题,可以咨询千锋教育客服,也可以了解Java培训课程,得到系统的Java知识培训。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区