文档章节

方法重写与重载

 烟中泪
发布于 2017/02/25 14:43
字数 589
阅读 2
收藏 0
点赞 0
评论 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
类、多态、重载、重写

类的修饰符 类的修饰符可以是public、final、abstract,或者三个都不行,只写一个class关键字也可以。 重载 重载只和方法名和参数有关,1方法名要求相同 2参数要求数据类型或者参数个数不同 ...

xuklc
03/10
0
0
PHP 方法覆盖override 与 抽象方法的实现之间的关系

Overload重载:重载是多态的基础,是方法名相同但根据参数不同做不同的处理,PHP是弱类型语言,不能直观的实现方法重载 Override覆盖:覆盖是子类继承父类方法并对齐进行重新构造,方法名相同...

big_cat
2015/09/13
397
0
Java 的重写(Overriding)与重载(Overloading)

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

和蔼的哔哔
2015/08/19
0
0
java中的方法重载( Overload )

首先,java中存在两种意义的多态, 重载(Overload)和重写(Override),重写是与继承有关的多态。 第一种:操作名称的多态,即有多个操作具有相同的名字,但这些操作锁接受的消息类型必须不...

牧羊人Berg
2015/10/13
61
0
php面向对象三大特性

1.封装: 目的:使类更加安全 步骤: 1、成员变量变成private(私有的) 2、设置方法/调用方法 3、在方法中增加限制 aa = $v; } public function get_aa() { return $this->aa;//给aa一个返回...

IDC_之家
2017/02/14
0
0
重写和重载

重写方法的名称和参数(类型、个数与顺序)全部相同。一般是指父类和子类之间,子类重写了父类的一个方法,当然方法名是一样的,而且不能改变父类方法的返回值,比如说父类是返回String,子类...

风格若干
2016/08/11
19
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
28分钟前
0
0
Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部