方法签名

方法签名是指方法的参数类型,顺序和个数.不包含方法名称.

重载

重载必须满足以下条件

  • 方法名 相同
  • 方法的参数类型,个数和顺序至少一项不同
  • 方法的返回类型可以不同
  • 方法的访问权限修饰符可以不同

覆盖

如果在子类中定义的一个方法,其名称,返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么子类覆盖了父类的方法。
覆盖必须满足以下条件:

  • 子类方法的名称、参数签名和返回类型必须与父类方法保持一致。
  • 子类方法不能缩小父类方法的访问权限。

    如果没有这个限制,会与java语言的多态机制发生冲突。

      //创建父类型的变量,引用子类的实例Parent parent = new Child();//调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法parent.method();
  • 子类方法不能抛出比父类方法更多的异常.子类方法抛出的异常必须与父类方法抛出的异常相同,或者父类方法抛出的异常类是父类方法抛出异常类的子类.
  • 方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间.在同一个类中方法只能被重载,不能被覆盖.
  • 父类的静态方法不能被子类覆盖为非静态方法.
  • 父类的非静态方法不能被子类覆盖为静态方法
  • 父类的私有方法不能被子类覆盖
  • 父类的非抽象方法可以被子类覆盖为抽象方法

异同

  1. 相同点

    • 方法名要保持一致
  2. 不同点

    • 方法覆盖要求参数签名一致,而方法重载要求参数签名必须不一致.
    • 覆盖要求返回类型一致,或者子类方法返回类型小于父类方法,重载对此不做限制.
    • 覆盖只能用于子类覆盖父类的方法,重载用于同一个类的所有方法(包括从父类中继承而来的方法).
    • 覆盖对方法的访问权限和抛出异常有要求,重载不做限制.
    • 父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次.

java:方法覆盖与方法重载相关推荐

  1. 【java基础18:方法覆盖与多态】什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型

    目录 方法覆盖Override 多态 方法覆盖Override 方法覆盖初体验,什么样的程序要方法覆盖 /*当前程序存在的问题(设计上的问题)??鸟儿在执行move()方法的时候,最好输出的结果是:& ...

  2. Java刷题知识点之方法覆盖(方法重写)和方法重载的区别

    https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=6 方法重写的原则: 重写 ...

  3. 方法覆盖(方法重写)

    package com.qingfeng; /**  *  * @author win7  * 功能:方法覆盖(方法重写):子类的某个方法覆盖父类的某个方法  */ public class Demo ...

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

    1. 方法 1.1 方法 实现了某一功能,代码可以复用 1.2 方法签名 java中每个方法都有一个签名,包含方法名和参数列表(类型.个数以及顺序),只要其中一个不同,方法的签名不同,也就是属于不同的 ...

  5. Java——继承、方法覆盖

    继承 一.继承的作用 基本作用:子类继承父类,代码可以得到复用. 主要(重要)作用:因为有了继承关系,才有了后期的方法覆盖和多态机制. 二.继承的相关特性 B类继承A类,则称A类为超类(supercl ...

  6. java方法覆盖Override

    1.什么时候考虑使用方法覆盖? 父类中的方法无法满足子类的业务需求,子类有必要对继承过来的方法进行覆盖. 方法覆盖又叫做:方法重写(重新编写),英语单词叫做:Override.Overwrite. 比 ...

  7. java 覆盖_Java 方法覆盖

    方法覆盖 1.什么时候考虑使用覆盖? 子类继承父类之后,当继承过来的方法无法满足当前子类的业务需求时, 子类有权利对这个方法进行重新编写,有必要进行"方法的覆盖" 方法覆盖又叫做: ...

  8. 方法覆盖(重写)和方法重载

    方法覆盖(重写)和方法重载具有以下相同点: ·都要求方法同名. ·都可以用于抽象方法和非抽象方法之间. 方法覆盖和方法重载具有以下不同点: ·方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不 ...

  9. 15.Java方法覆盖

    方法重写(覆盖):就是子类有一个方法和父类的某个方法的方法名.返回值类型.参数列表一样,那么我们就说子类这个方法覆盖了父类的方法.[英文单词:override] 什么时候使用方法重写? 当父类中方的方 ...

最新文章

  1. 第 138 章 Spark
  2. 第一范式、第二范式、第三范式
  3. c java 开发android_java代码与纯C代码混编完成android应用的开发
  4. javascript 之 面向对象【理解对象】
  5. python安装redis模块_安装redis及python redis模块
  6. cad java_cad和java哪个工资高
  7. android 渠道打包工具,Android渠道打包技术小结
  8. 基于Python的ModbusTCP客户端实现
  9. 数独游戏技巧从入门到精通_工程施工图识图方法和技巧,使你从建筑施工入门到精通!...
  10. 计算机考试一级b软件未来教育,2019.9全国计算机一级MS Office考试每日一练
  11. 如何关闭访达窗口_UG NX软件基础操作,如何自定义软件快捷键
  12. 今天二月二龙抬头:除了理发 各地还有哪些习俗?
  13. uniapp生成海报
  14. DoublyLinkedList
  15. 康师傅红烧牛肉面:守护平凡英雄,成就烟火人生
  16. Python Computer Vision Programming学习笔记(一)——Python以及各Package安装
  17. LWN:替换 congestion_wait()!
  18. iOS应用中crash 奔溃解析
  19. Redis开启远程访问及密码认证
  20. 手把手教你画AndroidK线分时图及指标

热门文章

  1. linux NFS配置:NFS相关概念及其配置与查看
  2. 人人出售56不亏:三方得利
  3. 银光中国网免费Silverlight空间Web Service部署方法
  4. 成为一流CSS设计师的8大技巧
  5. springboot模板引擎_Spring Boot实战:如何搞定前端模板引擎?
  6. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...
  7. 企业进销存管理系统_攻略 | 七巧Plus定制您的专属进销存管理系统
  8. 微信 php 接口 函数,PHP的json_encode函数应用到微信接口有关问题(include \uxxxx will create fail)...
  9. 交换机和路由器的区别_路由器与交换机的区别?
  10. javascript搜索框联想搜索_js实现类似于联想关键词的搜索功能(附代码)