重载:
发生在同一个类中,方法名
必须相同,参数类型
不同、个数
不同、顺序
也不同,方法的返回值
和修饰符
可以不同,重载发生在编译时期。
判断下面的两个方法是否是重载?
public int add(int a,String b)
public String add(int a,String b)
答案:不是。上面的情况在编译的时候会报错,编译器会认为这是相同的方法,但是返回值不一样,所以报错。
重写:
发生在父子类中,方法名
、参数列表
必须相同,返回值
范围小于等于父类,抛出的异常
范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private
则子类就不能重写该方法。