您的位置:

Java Override详解

一、 Override定义

Override是Java中的一个关键字,表示方法重写。方法重写的意思是当我们继承父类后,重新编写一个与父类中方法名和参数列表相同的方法体,但是方法体中的实现与父类中不同,我们就成了方法重写。

二、Override用法

Override的用法存在一定的限制,具体如下:
1. 方法名必须与被重写方法一样。
2. 参数列表必须与被重写方法一样。
3. 访问权限必须不能少于被重写方法的访问权限。
4. 返回值类型必须是被重写方法的返回值类型或者其子类型。
5. 方法重写不能抛出新的或更广的异常。

三、Override注意事项

Override情况下需要注意以下几点:
1. 重写方法不能使用比被重写方法更为严格的访问权限修饰符,如父类中的方法声明为public,则子类中的该方法只能声明为public,不能声明为protected或private(也就是说,子类中的重写方法的访问权限修饰符不能小于父类中被重写的方法的访问权限修饰符)。
2. 建议加上@Override注解,方便理解。
3. 静态方法不能被重写。

四、Override示例

//父类
public class Person {
    int age;
    void sayHello(){
        System.out.println("Hello");
    }
}

//子类
public class Student extends Person {
    int grade;
    @Override
    void sayHello(){
        System.out.println("Hello, I am a student");
    }
}

在上述示例中,我们重写了Person类中的sayHello()方法,在子类Student中重新定义其方法体。当我们创建Student对象,调用sayHello()方法时,输出的为“Hello, I am a student”,而不是“Hello”。

五、小结

Override是Java中的一个非常重要的特性,使用Override可以较好的解决继承关系中的冲突问题,而且可以通过Override注解方便了解子类中方法是被重写的。在使用Override时,需要注意一些细节问题,比如访问权限,返回值类型等等。