回顾一下方法重载:

1.什么时候考虑使用方法重载overload?
答:当在一个类中,如果功能相似的话,建议将名称定义成一样,只是参数列表(个数,顺序,类型)不同,这样代码美观,且方便编程。


2.什么条件构成方法重载overload?
答:(1)同一个类当中;(2)方法名相同;(3)参数列表不同(个数,顺序,类型)


3.什么时候我们会考虑使用“方法覆盖”呢?
子类继承父类之后,当继承过来的方法无法满足当前子类的业务需求时,子类有权利对这个方法进行重新编写,又叫“方法的覆盖”。
方法覆盖又叫做:方法重写,英文单词:Override。


4.方法覆盖的条件是什么?
(1)两个类必须有继承关系,这是前提条件;
(2)重写之后的方法和之前的方法具有相同的返回值类型,相同的方法名,相同的形式参数列表
(3)重写方法的访问权限不能比之前方法的权限更低,可以更高;
(4)重写方法的抛出异常数不能比之前方法的抛出异常数更多,可以更少。


5、方法覆盖的注意事项:
(1)方法覆盖只是针对方法,和属性无关;

(2)父类的私有方法无法覆盖;

(3)构造方法不能被继承,所以构造方法也不能被覆盖;

(4)方法覆盖只是针对实例方法,静态方法覆盖没有意义;

(5)书写方法覆盖时,建议使用复制粘贴父类的方法到子类,手动写可能会失误。


测试代码:


public class MyTest {public static void main(String[] args) {Cat c1 = new Cat();c1.run();  //输出:猫在走猫步!!!Bird b1 = new Bird(); b1.run();  //输出:鸟儿在飞翔!!!}
}class Animal {// 移动方法,访问权限为protected,比public低protected void run() { System.out.println("动物在移动!!!");}}class Cat extends Animal {//改方法的访问权限不能比原继承方法的访问权限低,可以更高public void run() {System.out.println("猫在走猫步!!!");// 这里不能抛出异常,因为抛出异常数=1 > 继承方法的抛出异常数/*try {throw new Exception("抛出异常");} catch (Exception e) {e.printStackTrace();System.out.println("捕获异常");}*/}
}class Bird extends Animal {public void run() {System.out.println("鸟儿在飞翔!!!");}
}

Java中方法覆盖的基本使用相关推荐

  1. JAVA中方法覆盖,看这篇就够了

    方法覆盖 1.方法覆盖又被称为方法重写 2.什么时候使用方法重写? 当父类中的方法已经无法满足当前子类的业务需求: 子类有必要将父类中继承过来的方法进行重新编写: 3.代码需要满足什么条件才能构成方法 ...

  2. java 中覆 写tostring_如何在Java中正确覆盖toString()?

    如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...

  3. Java中方法的重写(overriding)和重载(overloading)的区别

    Java中方法的重写(overriding)和重载(overloading) 重写 在子类中可以根据需要对从父类中继承来的方法进行改造,也称为重置.覆盖. 在子类中创建一个和父类中的一个相同名字.相同 ...

  4. 深入浅出JVM(五)之Java中方法调用

    方法调用 要知道Java中方法调用唯一目的就是确定要调用哪一个方法 方法调用可以分为解析调用和分派调用,接下来会详细介绍 非虚方法与虚方法 非虚方法: 静态方法,私有方法,父类中的方法,被final修 ...

  5. Java中方法的学习

    目录 概述 第一章:Java中的方法是什么意思 (1)Java中方法的定义 ①方法的修饰符 ②方法的返回值类型 ③方法名 ④方法的参数列表 ⑤方法体 第二章:方法的重载和重写 (1)方法的重载 (2) ...

  6. 大数据笔记2019.5.9 Java中方法的使用

    方法: 1.方法的概念:(函数/过程) 封装了一段特定的业务逻辑功能 尽可能的独立,一个方法只让干一件事: 方法可以被反复的重新的调用 减少代码的重复,有利于代码的维护,减少团队开发的成本提高开发的效 ...

  7. java中方法的参数传递

    java中方法的参数传递方式只有一种:值传递: 对于基本类型来说,传递的是实参的副本(值传递),故在方法内修改传递进来的值并不会影响实参本身: 对于引用类型来说,传递进来的是引用变量的副本(也是值传递 ...

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

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

  9. Java中方法参数的传递

    Java中方法参数的传递: 众所周知,Java语言中只有值传递,看起来很好理解的一句话,那么来看一个例子: 输出结果: 这是一个经典问题,我想说说自己的理解: 首先,变量sa和sb分别包含一个字符串对 ...

最新文章

  1. Linus采访对Linux对git和对代码品味的理解
  2. hdu 2461(线段树求面积并)
  3. BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)
  4. C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\文件不断增长,如何处理?...
  5. 【Thymeleaf】格式化日期
  6. Linq的简介和基础知识学习
  7. java什么叫一致性,java-顺序一致性易失性说明
  8. 2.mysql优化---增删改优化
  9. java设置行显示复选框_java spring cheakbox复选框怎么行或者列删除添加
  10. HDU 4548 美素数(打表)
  11. Linux线程的同步,linux线程同步
  12. Shell编程基础(1)
  13. idea部署web项目到tomcat注意事项
  14. 手机自动化测试IDE之Airtest基本操作方法,学完让你解放双手
  15. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(3)
  16. 使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
  17. Beyong Compare3,4使用
  18. JavaSE方法(构造方法)与方法重载基础练习题
  19. Java 发送邮件的几种方式
  20. 为何学习大数据,要先学Java

热门文章

  1. 中国人才获取解决方案市场趋势报告、技术动态创新及市场预测
  2. excel随机数_用Excel做个随机点名
  3. 均值和方差归一化是什么?
  4. 宝石TD 4进出灭普通难度boss
  5. YGG SEA——首个 YGG 区域 subDAO介绍
  6. postgresql 自动创建分区表
  7. Android之RadioButton
  8. 小故事:理论创新为电子计算机诞生奠定了基础
  9. 乘法公式全概率公式贝叶斯公式
  10. 0 csdn博客编辑教程目录