重载:发生在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法返回值和访问修饰符不同,发生在编译时。
public int add(int a,String b)
public String add(int a,String b)
//编译报错
这种不属于重载,编译器会直接报错,重载和返回值无关。
重写:发生在父子类中,方法名,参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符大于等于父类;如果父类方法访问修饰符为private,则子类不能重写该方法。