方法重载和重写,光从名称上来说,很类似,也很容易弄错,接下来我们先简述两者的区别和联系。

1. 方法重载

首先方法重载是同一个类中的不同方法间的关系,这些方法具有同名(方法名一样),但是具有不同的参数列表(参数的个数和参数的类型不同)。方法重载其实是同一个类中多态性的表现,调用者可以依据传入不同个数或者不同类型的参数来决定最终调用哪一个同名的方法。方法重载其实是程序编译时的多态性,即代码在编译的时候就决定了使用哪一个方法。

方法重载的原则:

1.1 两者的方法名称一致

1.2 必须具有不同的参数列表(参数的个数和参数的类型)

1.3 可以有不同的参数返回类型

1.4 可以有不同的访问修饰符

1.5 可以抛出不同的异常

2. 方法重写

方法重写是子类与父类间的关系,子类的方法与父类的方法具有相同的方法名,相同的返回类型,相同的参数列表。方法重写其实是父类与子类间的一种多态性的表现。方法重写其实是代码运行时的多态性,即只有在代码真正运行的时候,才能决定到底使用哪一个真正的方法。

方法重写的原则:

2.1 子类不能重写父类中定义为final类型的方法

2.2 子类中必须重写父类中定义为abstract

2.3 重写方法必须具有相同的参数列表(参数个数和参数类型)

2.4 重写方法必须具有相同的返回类型

2.5 子类中重写的方法的访问修饰符一定要大于父类中被重写方法的访问修饰符(public>protected>default>private)

2.6 子类中重写的方法一定不能抛出新的检查异常或者比父类中被重写的方法申明的更加宽泛的检查型异常,例如:父类中的一个方法抛出了一个IOException的异常,那么其子类中重写的该方法只能抛出IOException异常的子异常,不能抛出IOException的父异常(Exception)

2.7 父类中的静态方法不能被重写的,父类中的方法不能被重写为静态方法

java中方法重载和重写的区别相关推荐

  1. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  2. java 可以重载等于号码_Java面试之Java基础4——重载与重写的区别

    目录 重载与重写的概念 重载与重写的区别 重载与重写的总结 构造器是否能被重写override 为什么函数不能根据返回类型来区分重载 重载与重写的概念 重载:同样一个方法可以根据输入参数列表的不同,做 ...

  3. Java方法重载与重写的区别

    重载(overload) 发生在同一个类中,方法名相同,参数列表不同,方法体不同 与返回值类型无关 编译期绑定 2.重写(override) 发生在父子类中,方法名称相同,参数列表相同(方法名称+参数 ...

  4. java中的重载和重写

    1.重载:可以在同一个类中存在多个函数,函数名称相同但参数列表(参数个数,参数类型,参数顺序)不同, 不能通过方法返回值类型,访问权限以及抛出异常来定义重载. 2.重写: "重写(覆盖)&q ...

  5. java 重载 不可_深入深刻深到不能再深的理解java中的重载和重写

    面向对象的三个特性 面向对象有三个重要的特性:多态,继承,封装. 多态的表现 多态的在java中的应用体现在方法的重载和重写. 重载:字面上的意义一个类里面,有同名但是参数必须不相同的方法.(这里的& ...

  6. 在java中方法重载的要求,Java方法的重载

    Java方法的重载 方法重载:在类中方法名称相同,但是形式参数不同 public class Demo15 { public static void main(String[] args) { int ...

  7. 方法重载和重写的区别,以及如何体现了多态性

    总结 (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading). 总结为 "两同一不同" 同一个类 ...

  8. java里next 和nextline_详解Java中方法next()和nextLine()的区别与易错点

    1.基本语法 1.1基本使用方法 本篇博客重点nextLine()会读取换行('\r'),但是不会进行输出. Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字 ...

  9. java后端开发教程_【后端开发】详细讲解JAVA中方法重载概念——简单易懂

    1.什么方法重载? 方法的重载指的是方法名一样,但是参数类型不一样 1.1.attack方法重载 有一种英雄,叫做物理攻击英雄 ADHero,为ADHero 提供三种方法. public void a ...

  10. java 中方法重载

    方法的重载* 在同一个类中,方法名相同,参数列表不同.与返回值类型无关.* 参数列表不同:* A:参数个数不同* B:参数类型不同* C:参数的顺序不同(不算重载 报错)ex:public class ...

最新文章

  1. sm4 前后端 加密_这7个开源的Spring Boot前后端分离项目整理给你
  2. Skia的SkCamera.cpp的doUpdate() 算法。
  3. 黑鹰ASP教程(全部)下载
  4. 【模板/经典题型】FWT
  5. 解决Minikube start卡住的方法
  6. Mathtype全文公式大小一致调整
  7. Activity小技巧
  8. 2013年下半年信息系统项目管理师考试试卷(回忆版)
  9. Android VNC Server New
  10. NET问答: 枚举 和 常量 在使用时该怎么抉择?
  11. BCGControlBar的使用方法
  12. python爬虫re_python网络爬虫之三re正则表达式模块
  13. iOS开发UI篇—无限轮播(循环展示)
  14. Ubuntu下安装honeyd
  15. 图标旋转html,如何使用CSS实现鼠标上移图标旋转的效果
  16. JAVA使用POI导出设置列格式为文本格式
  17. Windows server 2008 R2安装详细教程
  18. Acwing算法基础课学习笔记
  19. java读取文件夹下所有文件并替换文件每一行中指定的字符串
  20. HDMI协议介绍(一)--Overview

热门文章

  1. wm8978 控制接口,
  2. html使table整体居中,如何让整个table表格居中?
  3. 发短信属于长连接还是短连接_通过链接发送短信
  4. google chrome 同步书签 查看gmail邮箱 谷歌浏览器同步助手
  5. 简单好用的作图工具,除了Visio还有它!
  6. java上传图片裁剪_上传图像之裁剪
  7. 统计遗传学:第二章,统计分析概念
  8. 统计 fasta 文件序列长度及 GC 含量
  9. Maya2018安装报错:visual c++ 2010 sp1 错误代码1612
  10. Joson的简单用法