欢迎访问宙启技术站
智能推送

Java函数重写(Override):掌握Java函数重写及其实现方式和注意事项

发布时间:2023-06-05 13:44:41

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函数重写的多态性和动态绑定的特性。