Java函数重写(Override):掌握Java函数重写及其实现方式和注意事项
Java函数重写(Override)是指在继承关系中,子类定义与父类同名、同参数、同返回值类型的函数,从而覆盖父类的函数实现。重写是面向对象编程(OOP)中的一个重要概念,它可以让子类以自己的行为方式替代父类行为,实现了多态性和动态绑定。
Java函数重写的实现方式:
1. 函数参数、返回值类型和函数名必须与被重写函数相同;
2. 子类函数的权限修饰符不能低于父类函数。如,父类函数为public则子类函数必须为public或protected,不能为private;
3. 子类函数的异常类型不能超过父类函数,即子类函数抛出的异常类型必须是父类函数抛出异常类型的子集;
4. 子类函数不能重载父类函数,即子类函数的参数类型列表和个数必须与父类函数完全相同。
Java函数重写注意事项:
1. Java中的静态方法和私有方法不能被重写;
2. Java中的final方法也不能被重写,final方法是一种不可变方法,因此不能在子类中修改;
3. Java中,父类的构造函数不能被重写,但是子类可以定义自己的构造函数,并且必须调用父类的构造函数。如,super()或super(param);
4. 在Java中,要想重写一个方法,必须先继承父类并且方法必须要被声明为public。
重写示例代码:
public class Parent {
public void method() {
System.out.println("Parent method");
}
}
public class Child extends Parent {
@Override
public void method() {
System.out.println("Child method");
}
}
public class Main {
public static void main(String[] args) {
Parent parentObj = new Parent();
Child childObj = new Child();
parentObj.method(); // Output: Parent method
childObj.method(); // Output: Child method
Parent childObj1 = new Child();
childObj1.method(); // Output: Child method
}
}
在上面的示例代码中,Child类继承自Parent类,并重写了Parent类的method()方法。在Main类中,分别使用Parent和Child类创建对象,调用method()方法,验证了重写的效果。同时,在使用Parent类的引用指向Child类的对象时,也调用了Child类中的方法,说明了Java函数重写的多态性和动态绑定的特性。
