一 重写和重载
*重写(override):
当子类继承的方法,无法满足子类的要求,重写覆盖父类的方法。
例:
class Shape{
public void draw(){
System.out.println("画图形");
}
}
class Cycle extends Shape{
@Override
public void draw() {//子类Cycle对父类Shape的draw方法的重写
System.out.println("⭕");
}
}
class Rect extends Shape{
@Override
public void draw(){//子类Rect对父类Shape的draw方法的重写
System.out.println("长方形");
}
}
重写注意点:
1.参数一致
2.方法名一致
3.返回值类型一致
4.子类的访问修饰符不能比父类严格
5.继承时重写
*重载(Overload):
一个类中的某个方法完成某个功能,但是这个方法的操作的对象的数据类型或者对象的个数发生改变时,就需要重载该方法。
例:完成两个整数求和
public int add(int a,int b){
int sum = a+b;
return sum;
}
上面这个方法完成的是求和这个功能,但是只能进行两个整数的求和,当我需要进行两个double类型的数据的求和时,这个方法就无法满足我的需求,这时候就需要进行方法重载。
1.参数的类型不同:
public int add(int a,int b){
int sum = a+b;
return sum;
}
public double add(double a,double b){
double sum=a+b;
return sum;
}
可以看见两个方法的参数个数一致,但是参数的类型不同,这是方法重载的第一种。
方法重载还有以下几种情况:
2.方法的参数个数不同:
public int add(int a,int b){
int sum = a+b;
return sum;
}
public int add(int a,int b,int c){
int sum=a+b+c;
return sum;
}
3.方法的参数的顺序不同:
public double add(double a,int b ){
double sum = a+b;
return sum;
}
public double add(int a,double b){
double sum = a + b;
return sum;
}