动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

掌握java方法覆盖的实现方法

07-21 17:30 242浏览
举报 T字号
  • 大字
  • 中字
  • 小字

在前面的学习中,相信大家已经学习了java方法重载的相关知识点,当代码在同一个类中,方法名相同,类型、个数和顺序等参数列表不同时,就构成了方法重载。那么当代码和程序满足什么条件时,可以在java语言使用方法覆盖呢?java方法覆盖又是怎样实现呢?

首先来看一下什么是java方法覆盖,方法覆盖的概念是什么,java方法覆盖又叫做重写,这两个名字是一样的意思。如果子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法,就叫做java方法覆盖。为java方法覆盖也就是重写的概念总结一下,有5点内容:在子类中重写父类的实例方法子类方法必须与父类方法名称一致参数列表一致返回类型一致或父类方法返回类型的子类类型访问修饰符不能缩小范围

当从父类中继承过来的方法无法满足当前子类业务需求的时候,需要将父类中继承过来的方法进行覆盖。换句话说,父类中继承过来的方法已经不够用了,子类有必要将这个方法重新再写一遍,当该方法被重写之后,子类对象一定会调用重写之后的方法。根据这个java方法覆盖的使用场景,来看一段代码,更清楚的了解java方法覆盖是怎么使用的。

定义一个动物类,所有动物都有移动的行为,其中猫类型的对象在移动的时候输出“猫在走猫步!”,鸟儿类型的对象在移动的时候输出“鸟儿在飞翔!”,但是猫类型的对象具有一个特殊的行为,抓老鼠,这个行为不是所有动物对象都有的,是猫类型对象特有的,代码如下:

public class Animal {
	public void move(){
		System.out.println("动物在移动!");
	}
}
public class Cat extends Animal{
	public void move(){
		System.out.println("猫在走猫步!");
	}
	public void catchMouse(){
		System.out.println("猫抓老鼠!");
	}
}
public class Bird extends Animal{
	public void move(){
		System.out.println("鸟儿在飞翔!");
	}
}
public class Test {
	public static void main(String[] args) {
		Cat cat = new Cat();
		cat.move();
		cat.catchMouse();
		Bird bird = new Bird();
		bird.move();
	}
}

最终代码程序运行结果就是:

猫在走猫步!

猫抓老鼠!

鸟儿在飞翔!

java方法覆盖总结一下,当父类中继承过来的方法无法满足当前子类业务需求的时候,子类有必要将父类中继承过来的方法进行覆盖/重写。方法覆盖发生在具有继承关系的父子类之间,方法覆盖的时候要求相同的返回值类型、相同的方法名、相同的形式参数列表。方法覆盖之后子类对象在调用的时候一定会执行覆盖之后的方法。需要注意的是在java方法覆盖中,有三不能重写:构造方法不能重写静态方法不能重写私有方法不能重写

上面的内容就是对java方法覆盖(重写)的概念和实现方法以及一些注意事项的介绍,希望各位java程序员java的学习者可以通过这篇文章对java方法覆盖有一个较为全面的认识,同时把java方法重载和java方法覆盖区别开来,在写代码编程序的时候熟练使用java方法覆盖。

0人推荐
共同学习,写下你的评论
0条评论
妄想没有错
程序员妄想没有错

5篇文章贡献24586字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消