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

覆写Java函数的方法与应用实例

发布时间:2023-08-04 12:42:25

覆写(Overriding)是指在一个子类中重新定义和实现其父类中已有的方法的过程。通过覆写方法,可以使得子类的对象在调用该方法时具有自己特有的行为。下面是覆写Java函数的方法和应用实例。

1. 方法签名一致:

覆写方法时,子类中的方法名、参数列表和返回类型必须与父类中的方法一致。如果方法签名不一致,则无法进行覆写。

2. @Override注解:

在子类的覆写方法上可以加上@Override注解,该注解可以帮助编译器检查是否正确覆写了父类的方法。如果覆写的方法签名与父类方法不一致,编译器会报错。例如:

   @Override
   public void methodName() {
       // 子类的具体实现
   }
   

3. 访问权限限制:

子类中覆写的方法的访问权限不能比父类中的方法更严格(即不能降低访问权限),但可以更宽松(即可以提高访问权限)。例如,如果父类的方法是protected访问权限,那么子类的覆写方法可以是protected或public,但不能是private。

4. 覆写方法的调用:

当使用父类的引用指向子类的对象时,如果存在覆写的方法,那么在调用方法时会优先调用子类的覆写方法,而非父类的方法。例如:

   ParentClass obj = new ChildClass();
   obj.methodName(); // 优先调用子类的覆写方法
   

下面是一个Java覆写函数的应用实例,假设有一个父类Animal和它的子类Dog,子类Dog覆写了父类Animal的cry方法,实现了自己特有的叫声。

class Animal {
    public void cry() {
        System.out.println("动物发出叫声");
    }
}

class Dog extends Animal {
    @Override
    public void cry() {
        System.out.println("狗在汪汪叫");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.cry(); // 输出:动物发出叫声

        Dog dog = new Dog();
        dog.cry(); // 输出:狗在汪汪叫

        Animal dog2 = new Dog();
        dog2.cry(); // 输出:狗在汪汪叫,调用的是子类Dog的覆写方法
    }
}

在上述代码中,Animal类中有一个cry方法,输出动物发出叫声;Dog类继承Animal类,并覆写了父类的cry方法,输出狗在汪汪叫。在Main类的main方法中,通过Animal类和Dog类的对象分别调用cry方法,可以看到实际调用的是对象所属类中覆写的cry方法。尤其是在最后一个调用中,通过Animal类的引用dog2指向了Dog类的对象,调用cry方法时调用的是子类Dog的覆写方法。

覆写Java函数的方法与应用实例就分析到这里,通过覆写方法可以实现多态性,提高代码的可扩展性和灵活性。