您的位置:首页 > 编程语言 > Java开发

Java方法的重载和重写

2017-03-11 16:04 225 查看
重载

重载是指在同一个类中,存在方法名相同,参数列表不同的若干个方法。参数列表不同包括参数类型,参数个数和参数顺序;一定要注意方法的重载跟方法的返回值类型没有关系!!!

下面就各种情况举例说明:

class MethodOverload{
/*方法1*/
int sum(int a, int b){
int result = a+b;
return result;
}

/*方法2*/
double sum(double a, double b){
double result = a+b;
return result;
}

/*方法3*/
double sum(double a, double b, double c){
double result = a+b+c;
return result;
}

/*方法4*/
double sum(double a, int b){
double result = a+b;
return result;
}

/*方法5*/
double sum(int a, double b){
double result = a+b;
return result;
}

/*方法6
double sum(int a, int b){
double result = a+b;
return result;
}
*/
}


a.上面代码中,方法1 和方法2,是参数的类型不同,所以构成方法重载,而方法1和方法6,参数列表相同,返回值类型不同,但是并不能构成方法重载。

b.方法2和方法3,因为参数个数不同,所以构成了方法的重载

c.方法4和方法5,因为参数顺序不同,也构成了方法的重载。

上述五个方法,在同一个类中,因为方法参数列表不同,因此他们构成了方法的重载。可以满足使用不同参数调用。

2. 重写

方法的重写是在子类继承父类的时候,父类中已有的方法,子类想改变具体方法的实现过程,自己重新改写方法体。返回值类型和参数列表都不能改变。

class MethodOverride{
void test(int a, int b){
int c = a + b;
System.out.println(c);
}

}

class SubMethodOverride{
void test(int a, int b){
int c = a*b;
System.out.println(c);
}
}


上述例子中,子类调用test方法时,将执行子类里的方法。抽象类中的抽象方法和接口中声明的抽象方法,都需要子类继承或实现的时候,在子类中重写。这些将在其他文章中介绍。

区分重载和重写,一定要记住重载是在同一个类中,重写是在超类与子类中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  重载 重写