文档章节

方法重写与重载

 烟中泪
发布于 2017/02/25 14:43
字数 589
阅读 2
收藏 0

方法的重写

子类中出现与父类一模一样的方法时(除了权限修饰符,权限修饰符大于等于不包括private,返回值类型,方法名和参数列表相同),会出现覆盖操作,也称为重写或者复写。

父类私有方法,子类看不到,因此父类私有方法的重写也就无从谈起。

方法的重写规则

  • 参数列表必须完全与被重写方法的相同;
  • 返回类型必须完全与被重写方法的返回类型相同;
  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
  • 父类的成员方法只能被它的子类重写。
  • 声明为final的方法不能被重写。
  • 声明为static的方法不能被重写,但是能够被再次声明。
  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 构造方法不能被重写。
  • 如果不能继承一个方法,则不能重写这个方法。

重写的使用场景

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容。

方法重写和重载有什么区别

方法的重写用在子类方法与父类方法一模一样时,除权限修饰符,返回值类型,方法名和参数列表都是相同的。
重载用在同一个类中各方法方法名相同,参数列表不同(与返回值类型没有关系)的情况。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 25
码字总数 8535
作品 0
重写、覆盖、重载、多态几个概念的区别分析

override->重写(=覆盖)、overload->重载、polymorphism -> 多态 override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(...

大灰狼wow
2014/04/30
0
0
重写重载区别

引言: 方法的重写和重载二者的名字很相似,但是二者的使用方式确实不太一样,以下简单介绍重写和重载的区别。 内容: 重写: 重写:一般在子类继承父类的时候,可以重写父类的方法,在抽象类...

cjune
2017/11/12
0
0
小朋友学Java(8):重写与重载

一、重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。...

翡翠森林Z
2017/12/11
0
0
C#方法重载(overload)、重写(覆盖)(override)、隐藏(new)

重载、重写、隐藏这三个概念对于很多人都不是很清晰,我也是差了很多资料又请教师哥才感觉能理解了,有不足之处还请老师同学们批评指正! 定义: 重载:同一个作用域内发生(比如一个类里面)...

邵鸿鑫
2014/03/07
0
0
[短文速读-2] 重载/重写,动/静态分派?

正题 为了避免不必要的浪费时间,文章主要是围绕俩点进行展开: 1、重载为什么根据静态类型,而非动态类型? 2、通过动/静态分派决定调用对应方法的符号引用。 如果对这俩个问题理解的比较深...

MDove
09/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

工作日志 ,城市ip地址整理

INSERT INTO sSELECT a.city,b.startip,b.endip FROM cityinfo a JOIN t_ip bON b.cheng LIKE CONCAT("%" ,a.city ,"%")ORDER BY a.cityHAVING COUNT(a.city)<=5ORD......

haifei2017
22分钟前
3
0
cdn是否可以抵御ddos的攻击

随着近年来来网络技术的不断进步,cdn不仅可以简单的用做网站加速,还能够更好的保护网站不被攻击。cdn在相关节点中成功的建立动态加速机制以及智能沉于等机制,能够帮助网站流量访问分配到每...

上树的熊
28分钟前
2
0
Oracle修改字符集

1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID=你想进入的数据库的那个sid 3.输入 sqlplus /nolog 4.将数据库启动到...

lyle_luo
35分钟前
1
0
Xamarin Essentials教程打开文件

Xamarin Essentials教程打开文件 FileSystem类的OpenAppPackageFileAsync()方法可以用来打开App包中特定的文件,其语法形式如下: public static System.Threading.Tasks.Task<System.IO.St...

大学霸
46分钟前
1
0
Redis应用之分布式锁(set)

Redis应用之分布式锁(set) 在单机应用的场景下,我们常使用的锁主要是synchronized与Lock;但是在分布式横行的大环境下,显然仅仅这两种锁已经无法满足我们的需求; 需求:秒杀场景下,有若干...

GMarshal
59分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部