* 方法的重载(overload)
- 要求:1.同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同)
- 补充:方法的重载与方法的返回值类型没有关系!
如下的四个方法构成重载
//定义两个int型变量的和
public int getSum(int i,int j){
return i + j;
}
//定义三个int型变量的和
public int getSum(int i,int j,int k){
return i + j + k;
}
//定义两个double型数据的和
public double getSum(double d1,double d2){
return d1 + d2;
}
//定义三个double型数组的和
public void getSum(double d1,double d2,double d3){
System.out.println(d1 + d2 + d3);
}
不能与如上的几个方法构成重载
public int getSum1(int i,int j,int k){
return i + j + k;
}
public void getSum(int i,int j,int k){
System.out.println(i + j + k);
}
以下的两个方法构成重载。
public void method1(int i,String str){
}
public void method1(String str1,int j){
}
方法的重写(override orverwrite) vs 重载(overload)
**
【面试题】方法的重载与重写的区别?
重载:“两同一不同”:同一个类,同一个方法名,不同的参数列表。 注:方法的重载与方法的返回值无关!
>构造器是可以重载的
重写:(前提:在继承的基础之上,子类在获取了父类的结构以后,可以对父类中同名的方法进行“重构”)
方法的返回值,方法名,形参列表形同;权限修饰符不小于父类的同名方法;子类方法的异常类型不大于父类的;
两个方法要同为static或同为非static。
class Cirlce{
//求圆的面积
public double findArea(){
}
}
class Cylinder extends Circle{
//求圆柱的表面积
@override
public double findArea(){
}
}