19-面向对象-方法重写(Override)

发布时间 2023-08-18 16:59:08作者: 马铃薯1

基本介绍

重写(Override):是指子类中有一个方法和父类的某个方法的名称、返回类型、参数完全一样,那么我们就说子类的这个方法覆盖了父类的方法

即在Java中,子类在重写父类的方法时,必须与父类方法的修饰符、返回值类型、方法名(参数列表) 要完全一致

public class Override01 {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.cry();
    }
}

class Animal{
    public void cry(){
        System.out.println("Animal一直在哭。。。");
    }
}

class Dog extends Animal{
    //方法重写
    //1.子类方法的参数,方法名称,要和父类方法的参数,方法名称完全一样
    //2.子类方法的返回类型和父类方法的返回类型一样,或者是父类返回类型的子类
    //3.子类方法不能缩小父类方法的访问权限
    public void cry(){
        System.out.println("Dog一直在哭。。。");
    }
}

重写(Override)和 重载(Overload)的区别

1. 重写(Override)

重写是子类重写父类的方法,方法的名称、返回类型、参数列表(参数的类型和个数)完全一样。

重写是动态绑定,即在编译时不能确定具体的调用方法,而在程序运行时,才能确定具体的被调用的方法。

2. 重载(Overload)

重载是在当前类中,方法的名称一样,但返回类型,参数列表(参数的类型和个数)不同。

重载是静态绑定,即在编译时就根据实参类型确定了调用哪个方法。