Java中的函数重载和覆盖概念及使用方法
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函数时,系统会自动选择子类中的版本。
