Java函数-如何实现重载和覆盖?
发布时间:2023-06-21 10:34:42
Java是一门面向对象编程的语言,其中两个重要的概念是函数的重载和覆盖。函数的重载是指在同一个类中,定义多个同名但是参数不同的函数,以便程序根据不同的参数类型或者参数个数调用适合的函数。函数的覆盖是指子类中的函数可以重写父类中同名的函数,当通过子类的实例调用该函数时,将调用子类的实现。
如何实现函数的重载?
在Java中实现函数的重载,需要在同一个类中定义多个函数,但是它们必须有不同的参数类型或者参数个数。例如:
public class OverloadExample {
public int sum(int a, int b) {
return a + b;
}
public int sum(int a, int b, int c) {
return a + b + c;
}
public double sum(double a, double b) {
return a + b;
}
}
上面的代码中,定义了三个同名但是参数不同的sum()函数。当程序调用sum()函数时,会根据具体的参数类型或者参数个数,自动调用适合的函数。例如:
public static void main(String[] args) {
OverloadExample oe = new OverloadExample();
System.out.println(oe.sum(1, 2)); // 输出3
System.out.println(oe.sum(1, 2, 3)); // 输出6
System.out.println(oe.sum(1.0, 2.0)); // 输出3.0
}
上面的例子中,分别调用了三个不同的sum()函数,并且根据不同的参数类型或者参数个数,自动调用适合的函数。
如何实现函数的覆盖?
在Java中实现函数的覆盖,需要在子类中定义一个与父类中同名的函数,并且在函数前面加上@Override注解。例如:
public class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("猫发出喵喵声");
}
}
上面的代码中,Cat类继承了Animal类,并且重写了makeSound()函数。当通过Cat类的实例调用makeSound()函数时,将调用Cat类中的实现。例如:
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound(); // 输出:动物发出声音
Cat cat = new Cat();
cat.makeSound(); // 输出:猫发出喵喵声
}
上面的例子中,先创建了一个Animal类的实例,调用makeSound()函数输出“动物发出声音”,然后创建了一个Cat类的实例,调用makeSound()函数输出“猫发出喵喵声”。
总结
函数的重载和覆盖是Java中两个重要的概念。函数的重载可以根据不同的参数类型或者参数个数,自动调用适合的函数;函数的覆盖可以在子类中重写父类中同名的函数,以便实现自己的具体功能。在实际开发中,根据需要灵活运用这两个概念,能够使程序更加简洁、易于维护。
