Java函数 - 实现函数的重载和覆盖
发布时间:2023-06-02 04:23:36
Java中的函数有两种实现方式:重载和覆盖。在本文中,我们将详细介绍这两种方式。
重载
Java中的函数重载是指在同一个类中定义多个同名但参数不同的函数。函数的参数可以有不同的类型、个数或顺序,只要满足一个条件即可——函数名相同。
重载函数的特点:
1、函数名称相同。
2、参数个数不同。
3、参数类型不同。
4、参数顺序不同。
5、返回值类型可以相同也可以不同。
代码实现:
public class OverloadDemo {
public void area(int a){
System.out.println("Area of the square is "+a*a);
}
public void area(int a, int b){
System.out.println("Area of the rectangle is "+a*b);
}
public void area(int a, int b, int c){
System.out.println("Area of the triangle is "+(a+b+c));
}
public static void main(String args[]){
OverloadDemo obj = new OverloadDemo();
obj.area(4);
obj.area(4, 5);
obj.area(4, 5, 6);
}
}
覆盖
Java中的函数覆盖是指派生类重新定义了基类中拥有相同名称的函数。覆盖函数必须与被覆盖函数具有相同名称、相同参数列表和相同的返回类型。此外,覆盖函数不能具有比被覆盖函数更严格的访问限制。
覆盖函数的特点:
1、函数名称相同。
2、参数列表需相同。
3、返回值类型也需相同。
4、覆盖函数的可见性不得弱于原函数。
代码实现:
class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal();
Animal b = new Dog();
a.move();
b.move();
}
}
在上面的示例中,Animal类有一个move方法,它打印“动物可以移动”。然后,我们定义一个继承自Animal的Dog类,并覆盖了move方法。在测试类中,我们创建一个Animal类型的对象,并调用它的move方法。然后,我们创建一个Dog类型的对象并将其分配给Animal类型的变量,最终调用了move方法。在这种情况下,由于Dog类覆盖了Animal类的move方法,因此输出不同。
结论
Java中的函数有两种实现方式:重载和覆盖。这两种方式都可以在程序中实现多态性。重载函数表示同一操作针对不同数据执行的不同实现,而覆盖函数表示一个派生类重新定义了其基类的函数。在使用这两种方式时,请始终遵循Java中的规则。
