ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

方法的重写 override/overwrite

2021-05-01 20:01:36  阅读:179  来源: 互联网

标签:子类 方法 类型 override 返回值 父类 重写 overwrite


重载(overlload)和重写的区别。

重载:方法名一样,参数类型,参数个数,返回值不一样或者一样的多个方法,就是方法重载、

  • 定义:在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖在程序执行时,子类的方法将覆盖父类的方法。
  • 要求:
  1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称,参数列表。
  2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型。(子类的权限可以比父类大,或者相同;对比煎饼果子,只有摊的大,才能覆盖掉)
  3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限。
  4. 子类不能重写父类中声明为private权限的方法。这种情况(不是重写),重写了之后,调用的还是父类的方法
  5. 子类方法抛出的异常不能大于父类被重写方法的异常。
  • 注意:子类与父类中同名同参数的方法必须同时声明为非static的(即为重写),或者同时声明为static(不是重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

 

static,final,abstract 这样的关键字‘

子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写).

1

通过方法名和形参列表(一样)  才能确定是唯一的方法。

 

6.重写的规定:

  方法的声明: 权限的修饰符  返回值类型  方法名(形参列表)   throws 异常的类型{

                                          //方法体

}

6,返回值类型:

父类被重写的方法的返回值类型是void,则子类重写的方法的返回值只能是void,

父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类型或者A类的子类。

父类被重写的方法的返回值类型是基本数据类型(比如double),则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是double)。

子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型。

Exception 顶级的异常

runTimeException  子类的异常

 

 

6,父类定义方法:

//父类定义方法:
public Object info(){
     return null;
}

//子类定义方法
public String info(){
     retutn XXX
}


这种情况也是重写。

 

 

练习:如果现在父类的一个方法定义成private的访问权限,在子类中将此方法声明为default的访问权限,那么这样还叫重写吗?(NO)

子类不能重写父类中声明为private权限的方法.

标签:子类,方法,类型,override,返回值,父类,重写,overwrite
来源: https://blog.csdn.net/u012222212/article/details/116331758

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有