方法重载:
方法的重载是指在同一个类中定义多个同名但参数列表(参数类型、参数个数或参数顺序)不同的方法,编译器会根据调用时传递的参数类型、个数和顺序来确定调用哪个方法
使用场景:当某一类方法,用法相似,但又有一些不同时。可以使用同一个方法名,然后根据参数的不同来区分
public static void main(String[] args) {
as(10,"结果是:"); //当执行代码是程序会先找到所有名为 as的方法,然后根据参数的类型的
个数去比对,两个参数类型分别为 整数和字符串,所以只有方法4符合,所
以调用了方法4
System.out.println(as(10, 32));//同理,两个整数类型 只有方法1符合,方法3为双精度应为
10.0 所以调用了1方法
as(20.500,67.5000);//同理,调用了方法3
as(12,34,56);//同理,调用了2方法
}
public static int as(int a,int b){
System.out.println("1方法执行了");
return a+b;
}
public static int as(int a,int b,int c){
System.out.println("2方法执行了");
return a+b+c;
}
public static int as(double a,double b){
System.out.println("3方法执行了");
return (int)(a+b);
}
public static int as(int a,String b){
int product=a*a;
System.out.println(b+product);
return product;
}
运行结果如下:
方法重载只与下列因素相关
1,参数的个数
2,参数的类型
3.参数类型顺序不同
方法重载与下列因素无关
1,与参数名称无关
2,与方法的返回值无关
方法重写:
方法的重写是指子类重新定义父类中已有的方法,方法名、参数列表和返回值类型必须与父类中的方法相同,但方法体可以不同。当子类对象调用重写的方法时,会优先调用子类中的方法,而不是父类中的方法。
使用场景:当使用某个类的方法的部分特性时,可以继承该类,然后对该方法进行一些更改,
例:
public class Animal {
public void sound() {
System.out.println("这是一只凶猛的动物");
}
}
public class Tiger extends Animal {//Tiger类继承了 Animal类 对父类方法惊醒了增强
@Override
public void sound() {
System.out.println("这是一只凶猛的东北虎");
}
}
方法重写发生的条件:
1, 发生在两个类之间
2,两个类之间有明确的继承关系
3,子类要对父类的方法进行覆盖,覆盖时,不改变方法的名称,参数,和返回类型