什么是Java方法重载? Java方法重载是什么意思?
在Java中,同一个类中的2个或2个以上的方法可以有相同的名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded),这个过程被称为方法重载(method overloading)。方法重载是Java实现多态性的一种方式。
当一个重载法方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版本。因此,每个重载方法的参数的类型和(或)数量必须是不同的。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。当Java调用一个重载方法时,参数与调用参数匹配的方法被执行。
public class Test{
public void a( ){
};
public void a( int i){
};
}
说明:在Test类中有两个方法,名字都相同,都是a。在调用方法a时,如果不传参数,则系统会自动调用第一个方法a,如果传入一个 int 类型的参数,则系统调用第二个方法a。
public class Test{
public void a(int i){
};
public void a(String j){
};
}
说明:在Test类中有两个同名的方法a。在调用方法时,如果传入一个int类型的参数,则会自动调用第一个a方法,如果传入一个String类型的参数,则会自动调用第二个方法a。
public class Test{
public void a(int i,String j){
}
public class a(String j,int i){
}
}
说明:在Test类中有两个同名的方法。在调用方法时,如果传入的第一个参数类型为int,第二个参数类型为String,则自动调用第一个方法a。如果传入的第一个参数为String类型,第二个参数类型为int,则自动调用第二个方法a。
实例:
public class Circle{
double radius,area;
void setRadius(double r){
radius = r;
}
double getArea(){
area = 3.14 * radius * radius;
return area;
}
}
public class Ladder{
double top,bottom,height;
public Ladder(double a,double b,double h){
top = a;
bottom = b;
height = h;
}
double getArea(){
return(top+bottom)*height/2;
}
}
public class People{
double computerArea(Circle c){
return c.gerArea();
}
double computerArea(Ladder i){
return c.gerArea();
}
}
public class Demo18{
public static void main(String[] args){
Circle circle = new circle();
Circle.setRadius(12.5);
Ladder ladder = new ladder(10, 20, 15);
People people = new people();
System.out.println("people计算圆的面积:"+people.computerArea(Circle));
System.out.println("people计算梯形的面积:"+people.computerArea(Ladder));
}
}