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

Java中的函数重载和覆盖概念及使用方法

发布时间:2023-06-23 13:07:22

java中的函数可以分为两种,一种是函数重载,另一种是函数覆盖。函数重载指的是在一个类中定义多个函数,这些函数具有相同的名称但参数(参数类型、参数个数或参数顺序)不同,这样就可以用相同的函数名称来实现不同的功能。函数覆盖指的是子类中定义了一个与父类中名称、返回类型、参数列表完全相同的函数,覆盖父类中的函数,从而实现不同的功能。

函数重载:

Java支持函数重载,即使在同一个类中存在同名函数,只要它们的参数列表不同,就是重载。

??函数重载是一种多态性,提高了程序的可读性,方便了程序员的开发。Java中函数重载的规则如下:

1.函数名相同

2.参数个数不同

3.参数类型不同

4.参数顺序不同

使用方法:

在同一个类中,如果有两个函数的函数名相同,但是参数个数或参数类型不同,就会重载。Java在调用函数时会根据参数的个数和类型自动选择合适的函数。下面举个例子:

public class TestMethod

{

    public int add(int a, int b)

    {

        return a + b;

    }

    

    public double add(double a, double b)

    {

        return a + b;

    }

}

在上面的例子中,add函数被重载了,有两个版本。 个版本计算两个整数的和,第二个版本计算两个浮点数的和。在调用add函数时,系统会根据参数类型自动选择合适的版本。

函数覆盖:

函数覆盖是指子类定义了与父类完全相同的函数,这个函数就覆盖了父类中的同名函数。子类可以使用父类中的函数,也可以覆盖父类中的函数。如果子类要覆盖父类中的函数,需要满足以下条件:

1.函数名相同

2.返回类型相同

3.参数列表完全相同

使用方法:

在子类中定义一个与父类中同名的函数,并且参数列表、返回类型都要和父类中的函数一样。注意,函数覆盖时不能改变函数的功能,只是改变了函数的实现。下面举个例子:

class Animal

{

    public void move()

    {

        System.out.println("动物可以移动");

    }

}

class Dog extends Animal

{

    public void move()

    {

        System.out.println("狗可以跑和走");

    }

}

在上面的例子中,Dog继承了Animal类,并覆盖了父类中的move函数。在子类中修改了父类中move函数输出的内容,改为“狗可以跑和走”,实现了多态性。在调用move函数时,系统会自动选择子类中的版本。