一、重写(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.无参构造方法和有参构造方法也是方法的重载
完结,撒花~