重写(override)
重写的目的: 和继承有关 重写的是方法 子类是可以继承父类的非私有化的方法的
但是有的时候父类的方法需求满足不了子类的需求了,这个时候在子类中需要重写父类的方法
class Father3 {
public void eat () {
System.out.println("吃窝窝头");
}
}
class Son3 extends Father3{
/*
* //重写: 就是把父类的方法重新写一遍,就是内容不一样
* 父类的方法不能动,子类的方法重新写了一遍
* 除了方法体中的内容不一样,其他都是一样的
*
* 其他是啥:
* 1.方法的名字
* 2.方法返回值
* 3.方法的参数
*/
@Override //重写的严格限定 告知程序员 下面方法是重写的方法,不是自己独有的方法
public void eat() {
System.out.println("吃烤鸭");
}
}
public class Demo5 {
public static void main(String[] args) {
Son3 son3 = new Son3();
son3.eat();
}
}
class Monkey {
public void shout () {
System.out.println("兔子");
}
public void eat () {
System.out.println("吃草");
}
}
class Human extends Monkey {
@Override
public void shout() {
System.out.println("人");
}
@Override
public void eat() {
System.out.println("吃兔兔");
}
}
public class Demo6 {
public static void main(String[] args) {
Human human = new Human();
human.eat();
human.shout();
}
}
总结:
重写的规则:
1.必须有继承关系 2.在子类中去重写父类方法 3.父类的方法必须是公开的或者默认的方法 4.在子类中重写父类的方法除了方法体不太一样,其他都一样(方法的返回值, 方法的名字 ,方法的参数)