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

Java函数-学习Java中如何实现函数重载和重写

发布时间:2023-07-04 19:16:19

在Java中,函数重载指的是在同一个类中定义多个同名函数,但这些函数有不同的参数列表。函数重载的特点是函数名相同,但参数类型、参数顺序或参数个数不同。通过函数重载,可以提高程序的灵活性和可读性。

函数重载的规则如下:

1. 函数重载是仅在同一个类中才能进行的,不能在不同的类中进行函数重载。

2. 函数重载的方法名必须相同。

3. 函数重载必须在同一个类中,不能在父类和子类中进行重载。

4. 函数重载必须有不同的参数列表,即参数的类型、顺序或个数不同。

下面是一个示例代码,演示了函数重载的用法:

public class OverloadExample {

    public void printNumber(int num) {
        System.out.println("The number is: " + num);
    }

    public void printNumber(double num) {
        System.out.println("The number is: " + num);
    }

    public void printNumber(String num) {
        System.out.println("The number is: " + num);
    }

    public static void main(String[] args) {
        OverloadExample example = new OverloadExample();

        example.printNumber(10);
        example.printNumber(3.14);
        example.printNumber("five");
    }
}

上述代码中,定义了三个同名函数printNumber,它们分别接受一个整数、一个浮点数和一个字符串作为参数。在main函数中,分别调用了这三个函数,并传入不同的参数类型。通过函数重载,这三个函数可以根据传入的参数类型来确定具体执行哪个函数。

函数重写(Override)指的是子类中定义了一个与父类中同名、同参数列表的方法。子类中的该方法将覆盖父类中的方法,子类在调用该方法时会执行子类中的方法逻辑。

函数重写的规则如下:

1. 子类中重写的方法名、参数列表和返回类型必须与父类中被重写的方法相同。

2. 重写的方法只能比被重写的方法拥有更宽松的访问权限,不能比被重写的方法拥有更严格的访问权限。

下面是一个示例代码,演示了函数重写的用法:

public class Animal {
    public void sound() {
        System.out.println("This is the sound of an animal.");
    }
}

public class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("This is the sound of a dog: woof woof!");
    }
}

public class Cat extends Animal {
    @Override
    public void sound() {
        System.out.println("This is the sound of a cat: meow meow!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.sound();

        Dog dog = new Dog();
        dog.sound();

        Cat cat = new Cat();
        cat.sound();
    }
}

上述代码中,Animal类是一个基类,定义了一个sound方法。DogCat类分别是Animal类的子类,它们重写了sound方法。在main函数中,分别创建了AnimalDogCat对象,并调用了sound方法。由于子类重写了父类的方法,因此在调用这三个对象的sound方法时,分别执行了子类中的方法逻辑。