1、方法重载
同一个类类中,多个方法名相同,参数列表不同的方法,调用方法是传不同的参数调用不同的方法
1)方法名相同
2)参数列表不同
public void test(int a,long b){}
参数的类型不同:public void test(String a,long b){}
参数的个数不同:public void test(int a){}
参数的顺序不同:public void test(long a,int b){}
3)返回值类型可以不同
注:在java中,判断一个类中的俩个方法是否相同,主要参考俩个方面:方法名字和参数列表
2、方法重写(方法覆盖)
子类和父类之间,父类有一个方法,子类继承类该方法,但对该方法有别的要求,对该方法进行重写
1)方法名必须相同
2)参数列表必须相同
3)访问控制修饰符可以被扩大,但是不能被缩小
public protected default private
4)抛出异常类型的范围可以被缩小,但是不能被扩大
ClassNotFoundException —> Exception
5)返回类型可以相同,也可以不同,如果不同的话,子类重写后的方法返回类型必须是父类方法返回类型的子类型
例如:父类方法的返回类型是Person,子类重写后的返回类可以是Person也可以是Person的子类型
注:一般情况下,重写的方法会和父类中的方法的声明完全保持一致,只有方法的实现不同。(也就是大括号中代码不一样)
静态方法不能重写
私有方法不能被子类重写;子父类中有相同的私有方法,不是重写,是两个不同的方法