1. 方法

1.1 方法

实现了某一功能,代码可以复用

1.2 方法签名

java中每个方法都有一个签名,包含方法名和参数列表(类型、个数以及顺序),只要其中一个不同,方法的签名不同,也就是属于不同的方法。但注意,签名不包含返回值类型,定义如下图。

如下图,只要签名相同,就认为是同个方法,所以即使我们设置返回值类型不同时,会提示我们方法“topo(int)”已经被定义,所以在实际开发中不要出现签名相同,但返回值类型不同的方法。

2. 方法重载(overload)

2.1 定义:同一个类中多个方法有相同的方法名,但是参数列表不同称作方法重载(不考虑修饰符和返回值类型)。

2.2 优点:可以调用同一个方法,传入不同参数实现相似的功能,便于程序员开发。

2.3 使用:在实现功能相似时,为了便于记忆,方便使用,考虑使用方法重载。

3. 方法覆盖或者方法重写(override、overwrite)

3.1 定义及使用:子类继承父类后,父类的方法功能满足不了子类的需求,子类有必要对继承的父类方法进行方法覆盖。父类的构造方法以及private修饰的私有方法不能被继承,也就不能被覆盖。

3.2 构成方法覆盖:子类重写的方法和父类方法要有相同的方法名和参数列表;子类方法的返回类型要小于等于父类方法返回类型(也就是子类方法的返回类型要么是父类方法返回类型的子类,要么返回值类型一样);子类方法抛出的异常类型要小于等于父类方法抛出的类型;子类方法访问权限大于等于父类方法访问权限。口诀就是“两同两小一大”。

3.3 以下是子类方法返回类型必须小于等于父类方法返回类型的示例。从代码可以看出子类方法返回类型Dog是父类方法返回类型Pet的子类时,覆盖成功;反之,编译器则报错:子类TestPro中的dko(int)方法和父类Pok的dko(int)方法冲突,尝试使用不兼容的返回值类型。

  

3.4 以下是子类方法返抛出异常必须小于等于父类方法抛出异常的示例。首先,由于子类方法抛出两个异常DateTimeException和BindException是父类方法抛出一个异常Exception的子类,所以覆盖成功,所以异常只考虑是不是父类,而不是考虑异常数量的多少;反之,编译器则报错:子类TestPro中的dko(int)方法和父类Pok的dko(int)方法冲突,被覆盖的方法没有抛出java.lang.Exception。

3.5 以下是子类方法访问权限必须大于等于父类方法访问权限的示例。首先,当子类方法访问权限public大于父类方法访问权限private时,方法覆盖成功;反之,编译器则报错:子类TestPro中的dko(int)方法和父类Pok的dko(int)方法冲突,试图分配较弱的访问权限private,而父类方法是public。

  

Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结相关推荐

  1. 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽

    最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...

  2. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  3. Java中的枚举类型与枚举实现接口的两种方式

    枚举的构造 若某事物的取值只有有限个,可以一个个罗列出来,则这个列举出来的类型就叫做枚举类型. (1)使用public static 修饰的方法构造枚举 public class Size {priv ...

  4. java抽象类重载_在JAVA中使用一个抽象方法的重载方法

    给出一个抽象类 public abstract class AbstractStomach { public abstract void consume(Food food); } 我想要一些具有不同 ...

  5. java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...

  6. Java中反射主要应用在哪里_Java学习:反射的应用场景和解析方法

    提到java语言的高级特性,反射绝对是Top1级别的,在大量开源框架中的应用范例比比皆是,那么需要了解清楚反射到底是什么?为什么要使用反射?如何使用反射?(what,why,how) 什么是反射? 正 ...

  7. java中while空循环_java – 实现空while循环以保持控制的更好方法

    假设你的程序是Java(-为什么你给它三个语言标签?)你有几个选择.您可以使用适当的同步事件,例如: // fields Object playerStopEvent = new Object(); ...

  8. java 手写签名,signature java html5+ 手写签名 源码 Develop 238万源代码下载- www.pudn.com...

    文件名称: signature下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 491 KB 上传时间: 2013-08-03 下载次数: 17 提 供 者: 孙晨 ...

  9. java里面的string类型,java中的String类型(不知道理解的好不,请教大神)

    当执行String a = "abc"; 时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述) java ...

最新文章

  1. 使用 vue filters过滤器直接显示 几分钟前 几小时前 几天前
  2. 51nod1565 FFT
  3. SortedDictionaryTKey, TValue 类 表示根据键进行排序的键/值对的集合。
  4. 太棒啦!PyCharm与Jupyter完美融合,Jupytext来啦!
  5. ubuntu系统中root的2种pip路径
  6. 开发黑名单功能demo_中台实践:通用化黑名单平台
  7. JNI 简明教程之手把手教你入门
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的药房药品管理系统
  9. 自学python到什么程度就可以工作-自学Python爬虫学到什么程度?就可以去找工作了?...
  10. 关于算法—— 一维字符串数组之间组合问题的C#实现
  11. 9月20日等级考试试题答案实时追踪中
  12. 前期交互流程(PTES的第一步)
  13. 多元线性回归分析spss结果解读_spss多元线性回归结果解读
  14. 我的世界java版如何加披风_我的世界披风怎么导入
  15. php 页面日历形式显示,日历页面展示-PHP制作阴阳历转换的日历插件-PHP中文网教程...
  16. 新生报到管理系统,新生报到系统,大学生新生报到管理系统计算机毕业设计
  17. 微信公众号的搭建-第二天-申请公众号并与本地测试服务器绑定
  18. js基础知识(第二篇)
  19. xp 计算机没装网络控制器,XP系统如何安装没有线网卡驱动?
  20. cygwin安装linux教程,Cygwin,让你拥有Windows下的Linux环境

热门文章

  1. 【MM模块】Batch 批次管理 2
  2. Oracle创建用户并给用户授权查询指定表或视图的权限
  3. 如何做好现状调研与需求分析
  4. CL_GUI_ALV_GRID 取消右鍵功能
  5. 关于SAP 对生产订单的月度结算
  6. ABAP OLE相关的应用
  7. 从搜索到AI,成为“小百度”的搜狗,没有新故事
  8. mysql只能用一个索引_mysql只会使用到一个索引的原因
  9. linux ping结果中mdev,Linux下PING中mdev含义
  10. ie-css3.htc参数无效,ie-css3.htc怎么用?