Java——方法的重写(覆盖)
2.2方法的重写(覆盖)(override,orverwrite)
2.2.1 什么时候方法要进行重写?
如果父类中的方法已经无法满足当前子类的业务需求,需要将父类中的方法进行重新写一遍。就是要改变父类的行为。
注意:子类如果重写父类中的方法之后,子类对象一定调用的是重写之后的方法。
2.2.2 发生方法覆盖的条件
①发生在具有继承关系的两个类之间
②必须具有相同的方法名,相同的返回值类型,相同的参数列表.
③重写的方法不能比被重写的方法拥有更低的访问权限。
④重写的方法不能比被重写的方法抛出更宽泛的异常。(异常机制再讲。)
⑤私有的方法不能被覆盖。(多态之后讲)
⑥构造方法无法被覆盖。因为构造方法无法被继承。
⑦静态的方法不存在覆盖。(多态之后讲)
⑧覆盖指的是成员方法,和成员变量无关。
继承最基本的作用:代码重用。 继承最重要的作用:方法可以重写。
2.2.3 方法的重载与重写的区别
方法重载(Overload)的条件:
①方法名称相同
②方法参数类型、个数、顺序至少有一个不同
③方法的返回类型可以不同,因为方法重载和返回类型没有任何关系
④方法的修饰符可以不同,因为方法重载和修饰符没有任何关系
⑤方法重载只出现在同一个类中
方法覆盖(Override)的条件:
①必须要有继承关系
②覆盖只能出现在子类中,如果没有继承关系,不存在覆盖,只存在重载
③在子类中被覆盖的方法,必须和父类中的方法完全一样,也就是方法名,返回类型、参数列表,完全一样
④子类方法的访问权限不能小于父类方法的访问权限
⑤子类方法不能抛出比父类方法更多的异常,但可以抛出父类方法异常的子异常
⑥父类的静态方法不能被子类覆盖
⑦父类的私有方法不能覆盖
⑧覆盖是针对成员方法,而非属性
注意:两个方法要同为static或同为非static。
|
public class Test01{ public static void main(String[] args){ //创建子类对象 Cat c = new Cat(); //调用方法 c.move(); Animal a = new Animal(); a.move(); } } //父类:动物 class Animal{ //成员方法 public void move(){ System.out.println("动物在移动!"); } } //子类:猫 class Cat extends Animal{ //Cat的move方法应该输出:猫在走猫步! //Animal中的move方法已经无法满足Cat了。 //所以要在Cat类中对Animal类中的move方法进行重新定义(方法的覆盖,方法的重写,Overwrite,Override) public void move(){ System.out.println("猫在走猫步!"); } } |


Java——方法的重写(覆盖)的更多相关文章
- Java 方法的重写
方法重写规则: 1.子类要重写的方法与父类方法具有完全相同的返回类型+方法名称+参数列表: 2.子类要重写的方法的访问权限大于或者等于父类方法的访问权限: 3.子类要重写的方法不能抛出比父类方法更大的 ...
- Java方法的重写
package Demo.oop.APP.Demo04; //启动器 public class application { public static void main(String[] args) ...
- Java类的设计----方法的重写、覆盖
方法的重写.覆盖 在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置.重写),在程序执行时,子类的方法将覆盖父类的方法. 覆盖方法必须和被覆盖方法具有相同的方法名称.参数列表和返 ...
- java中重载和覆盖(又称重写)的区别
初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊.于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个 ...
- Java中方法的重写
★★前提:方法的重写建立在继承关系上★★ 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 所谓方法的重写是指子类中的方法与父类中继承 ...
- 【知了堂学习笔记】java 方法重载与重写的归纳
方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...
- JAVA方法的重载(overload)和覆盖(override)
方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println() ...
- java===java基础学习(12)---方法的重写和重载
覆盖 / 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也 ...
- static关键字什么意思?Java中是否可以覆盖一个private或者是static的方法?
答案:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问.Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译 ...
随机推荐
- 深入理解java虚拟机JVM(上)
深入理解java虚拟机JVM(上) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...
- Schema约束与DTD约束
现将Schema约束与DTD约束实现的一个实例截图出来: 1.DTD 1.1 DTD文件 1.2 DTD实现 2.Schema 2.1 Schema约束 2.2 Schema实现
- 同步类容器和并发类容器——ConcurrentMap、CopyOnWrite、Queue
一 同步类容器同步类容器都是线程安全的,但在某些场景中可能需要加锁来保证复合操作. 符合操作如:迭代(反复访问元素,遍历完容器中所有元素).跳转(根据指定的顺序找到当前元素的下一个元素).条件运算. ...
- vue-cli构建的项目中请求代理与项目打包
vue-cli构建的项目中,生产模式下的打包路径.与生产模式下的请求代理简单示意
- sql 数据库
在关系数据库中,最常用的操作就是查询.直线电机推杆 准备数据 为了便于讲解和练习,我们先准备好了一个students表和一个classes表,它们的结构和数据如下: students表存储了学生信息: ...
- RRT路径规划算法(matlab实现)
基于快速扩展随机树(RRT / rapidly exploring random tree)的路径规划算法,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决高维空间和复杂约束的 ...
- 入门级_Tensorflow网络搭建
Tensorflow如何搭建神经网络 1.基本概念 基于Tensorflow的神经网络:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型 张量:张量就是多维数据 ...
- 微信小程序利用canvas生成海报分享图片
一 . 效果 这是借用女神照生成的分享的海报,图片来自网络. 新增了poster组件和更新图片自适应 二 . 准备 准备两张图片连接,最好是自己开发账号验证的https图片链接. 三 . 实现思路 其 ...
- jeecg接口开发及权限实现原理
接口开发使用的框架 jeecg本身是基于 Spring MVC 框架搭建的,因此,使用 Spring MVC 框架的 RESTful API 功能来进行接口开发就是顺理成章的事了. 接口的拦截与鉴权 ...
- 14、testng.xml 设置用例执行顺序
目录如下: TestGroup.java 代码如下: package com.testng.cn; import org.testng.annotations.*; import static org ...