重载是面向对象的特性之一,在整个JAVA程序语言设计中,有着重要的地位,本篇先讲述重载的概念,然后用大量实例,让读者能够熟练掌握重载,并且能联系实际,讲这个概念使用到现实应用中的程序开发中去。
1.什么是重载
在Java中,同一个类中的许多方法可以拥有同一个名字,只要它们的参数声明不同即可,这种方法就被称为重载。此过程被称为方法重载。
先看一个实例:
package test;
public class overload {
//一个普通的方法,不带参数
void test()
{
System.out.println("No parameters");
}
// 重载上边的方法,并且带了一个整形参数
void test(int a)
{
System.out.println("a:"+a);
}
//重载上边的方法,并且带了两个参数
void test(int a,int b)
{
System.out.println("a and b:"+a+" "+b);
}
//重载上边的方法,并且带了一个双精度参数,与上边带一个参数的重载方法不一样
double test(double a)
{
System.out.println("a:"+a);
return a*a;
}
}
package test;
public class test {
public static void main(String[] args) {
overload o=new overload(); //创建对象o
o.test();
o.test(3);
o.test(3, 4);
o.test(3.4);
}
}
代码说明:overload类中定义了4个名称相同的test()方法,不同的是他们的参数,有没有参数的,有一个参数的,也有两个参数的,而且参数可以是不同的数据类型。main调用了这四个方法。
运行效果:
通过上面的实例读者可以看出,重载就是在一个类中,有相同的函数名称,但形参不同的函数。重载的结果,可以让一个类尽量减少代码和方法的种类。
2.用实例来说明重载的意义
使用重载就是避免繁多的方法名,有些方法的功能是相似的,如果重新建立一个方法,重新取个方法名称,这会让程序段显得不容易阅读。
下面总结重载的实质:
方法名相同。
参数个数可以不同。
参数类型可以不同。
当访问一个重载方法时,首先编译器会比较参数类型与实际调用方法中使用值得类型,以选择正确的方法,如没有发现匹配的,则编译器报错,这就叫重载分辨。
为了让读者更熟练的运用重载方法编写程序,下面再举一个有关重载的复杂实例。
public class overload {
//一个输出方法
void print()
{
System.out.println("你好");
}
//重载上边的方法,加上了参数
void print(String name)
{
System.out.println(name+"你好");
}
//重载上边的输出方法,加上了两个参数
void print(String name,int age)
{
System.out.println(name+",你好,你有"+age+"岁了");
}
}
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
overload o=new overload();
o.print();
o.print("小明");
o.print("小明", 13);
}
}
运行效果: