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方法。Dog和Cat类分别是Animal类的子类,它们重写了sound方法。在main函数中,分别创建了Animal、Dog和Cat对象,并调用了sound方法。由于子类重写了父类的方法,因此在调用这三个对象的sound方法时,分别执行了子类中的方法逻辑。
