服务时间:8:30-18:00

首页 >java学习网

java中什么是方法重写

发布时间:2023-09-08 15:15 字数:1259字 阅读:152

java中什么是方法重写?方法重写(Method Overriding)是指在子类中重新定义(覆盖)从父类继承而来的方法,使该方法在子类中具有不同的实现。

java中什么是方法重写

当子类继承一个父类时,如果子类需要修改或扩展父类中的某个方法的行为,就可以使用方法重写。为了进行方法重写,子类需要满足以下条件:

1. 方法名和参数列表必须与父类中被重写的方法完全一致。
2. 访问修饰符不能严格限制,子类方法的访问修饰符可以与父类方法相同或更宽松,但不能更严格。
3. 返回类型必须兼容,即可以是相同的类型或是父类返回类型的子类。
4. 子类方法抛出的异常不能比父类方法抛出的异常更宽泛。

通过方法重写,子类可以改变继承自父类的方法的行为,以使其适应子类的特定需求。这样可以实现多态性,即通过父类类型的引用调用子类重写的方法,实际执行的是子类中的实现。

以下是一个简单的示例,展示了方法重写的用法:

class Animal {
    public void makeSound() {
        System.out.println("Animal makes sound.");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Cat meows.");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.makeSound();  // 输出: Animal makes sound.

        Cat cat = new Cat();
        cat.makeSound();     // 输出: Cat meows.

        Animal anotherAnimal = new Cat();
        anotherAnimal.makeSound();  // 输出: Cat meows.
    }
}

在上述示例中,`Animal`类定义了一个`makeSound`方法,输出"Animal makes sound."。`Cat`类继承了`Animal`类,并重写了`makeSound`方法,使其输出"Cat meows."。

在`Main`类的`main`方法中,分别创建了`Animal`对象和`Cat`对象,并调用它们的`makeSound`方法。可以看到,调用`Animal`对象的`makeSound`方法输出了"Animal makes sound.",调用`Cat`对象的`makeSound`方法输出了"Cat meows."。

此外,还创建了一个`Animal`类型的引用`anotherAnimal`,指向了一个`Cat`对象。通过该引用调用`makeSound`方法,同样输出了"Cat meows."。这体现了多态性的特点,即相同的方法调用根据对象的实际类型来决定执行哪个类的方法。