Java中方法覆盖的基本使用
回顾一下方法重载:
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中方法覆盖的基本使用相关推荐
- JAVA中方法覆盖,看这篇就够了
方法覆盖 1.方法覆盖又被称为方法重写 2.什么时候使用方法重写? 当父类中的方法已经无法满足当前子类的业务需求: 子类有必要将父类中继承过来的方法进行重新编写: 3.代码需要满足什么条件才能构成方法 ...
- java 中覆 写tostring_如何在Java中正确覆盖toString()?
如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...
- Java中方法的重写(overriding)和重载(overloading)的区别
Java中方法的重写(overriding)和重载(overloading) 重写 在子类中可以根据需要对从父类中继承来的方法进行改造,也称为重置.覆盖. 在子类中创建一个和父类中的一个相同名字.相同 ...
- 深入浅出JVM(五)之Java中方法调用
方法调用 要知道Java中方法调用唯一目的就是确定要调用哪一个方法 方法调用可以分为解析调用和分派调用,接下来会详细介绍 非虚方法与虚方法 非虚方法: 静态方法,私有方法,父类中的方法,被final修 ...
- Java中方法的学习
目录 概述 第一章:Java中的方法是什么意思 (1)Java中方法的定义 ①方法的修饰符 ②方法的返回值类型 ③方法名 ④方法的参数列表 ⑤方法体 第二章:方法的重载和重写 (1)方法的重载 (2) ...
- 大数据笔记2019.5.9 Java中方法的使用
方法: 1.方法的概念:(函数/过程) 封装了一段特定的业务逻辑功能 尽可能的独立,一个方法只让干一件事: 方法可以被反复的重新的调用 减少代码的重复,有利于代码的维护,减少团队开发的成本提高开发的效 ...
- java中方法的参数传递
java中方法的参数传递方式只有一种:值传递: 对于基本类型来说,传递的是实参的副本(值传递),故在方法内修改传递进来的值并不会影响实参本身: 对于引用类型来说,传递进来的是引用变量的副本(也是值传递 ...
- Java中方法重载和方法重写的区别
文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...
- Java中方法参数的传递
Java中方法参数的传递: 众所周知,Java语言中只有值传递,看起来很好理解的一句话,那么来看一个例子: 输出结果: 这是一个经典问题,我想说说自己的理解: 首先,变量sa和sb分别包含一个字符串对 ...
最新文章
- Linus采访对Linux对git和对代码品味的理解
- hdu 2461(线段树求面积并)
- BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)
- C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\文件不断增长,如何处理?...
- 【Thymeleaf】格式化日期
- Linq的简介和基础知识学习
- java什么叫一致性,java-顺序一致性易失性说明
- 2.mysql优化---增删改优化
- java设置行显示复选框_java spring cheakbox复选框怎么行或者列删除添加
- HDU 4548 美素数(打表)
- Linux线程的同步,linux线程同步
- Shell编程基础(1)
- idea部署web项目到tomcat注意事项
- 手机自动化测试IDE之Airtest基本操作方法,学完让你解放双手
- 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(3)
- 使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
- Beyong Compare3,4使用
- JavaSE方法(构造方法)与方法重载基础练习题
- Java 发送邮件的几种方式
- 为何学习大数据,要先学Java