重写(Override)与重载(Overload)

64 阅读2分钟

一、重写(override)

1.什么是重写

重写的目的:和继承有关 重写的是方法 子类是可以继承父类的非私有化的(公开的、默认的)方法的

但有时,父类的方法 满足不了子类的需求了,这个时候在子类中需要重写父类的方法

package com.qf.test;

class Father3 {
	public void eat () {
		System.out.println("吃窝窝头");
	}
}
class Son3 extends Father3{
	/*
	 * //重写:  就是把父类的方法重新写一遍,但是内容不一样
	 * 父类的方法不能动,子类的方法重新写了一遍
	 * 除了方法体中的内容不一样,其他都是一样的
	 * 
	 * 其他是啥:
	 * 	1.方法的名字
	 * 	2.方法返回值
	 * 	3.方法的参数
	 */
//	public void eat (String name) {
//		System.out.println(name + "吃大盘鸡");
//	 }
	@Override  //重写的严格限定 告知程序员 下面方法是重写的方法,不是自己独有的方法
	public void eat() {
		System.out.println("吃烤鸭");
	}
	
}
public class Demo5 {
	public static void main(String[] args) {
		Son3 son3 = new Son3();
		son3.eat();//调用的父类的方法
		//son3.eat("狗蛋");//调用的是子类独有的方法
	}
}

2.重写的规则

总结

1.必须有继承关系  
2.在子类中去重写父类方法
3.父类的方法必须是公开的或者默认的方法
4.在子类中重写父类的方法除了方法体不太一样, 其他都一样(方法的返回值, 方法的名字, 方法的参数)

二、重载(overload)

1.什么是重载

在Java中,同一个类里,有很多的方法,如果方法名字一样,参数列表不同,那么方法之间就叫重载。

package yanshi_01;

class Person{
	public void eat() {
		System.out.println("吃饭");
	}
	public void eat(String name) {
		System.out.println(name+"吃黄焖鸡");
	}
	public void eat(String name, int a) {
		System.out.println(name +"吃"+ a+ "份大盘鸡");
	}
}
public class Test01 {
	public static void main(String[] args) {
		Person person = new Person();
		person.eat();//吃饭
		person.eat("张三");//张三吃黄焖鸡
		person.eat("李四",4);//李四吃4份大盘鸡
	}
}

2.重载的规则

1.方法的重载必须写在同一个类中
2.方法的名字一样
3.方法的参数列表一定不同
4.方法的返回值可以一样,也可以不同
5.无参构造方法和有参构造方法也是方法的重载

完结,撒花~