1.重载
重载(overloading) 是在一个类里面,方法名字相同,而参数列表不同。返回类型,方法类型可以相同也可以不同。(参数列表:参数类型,个数,顺序)
public void move(){
System.out.println("gogogoogo");
}
public void move(String name){
System.out.println(name+"rushb");
}
“两同一不同”
两同:同类中,方法名相同;
一不同:方法参数列表不同(参数类型、参数个数、参数顺序);
只要参数类型,参数个数,参数顺序有一个不同,参数列表就不同.
注意:方法重载和方法的返回值类型无关,只是一般要求返回值类型一致。
参数列表和参数的名称没关系,方法的重载和形参没关系.
2.重写
子类需要修改父类中定义的方法的实现叫做重写 。
重写一个方法,需要在子类中使用和父类一样的名称以及一样的返回值类型来进行定义.(包括方法类型,即一模一样)
(两同两小一大):
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
public class father {
public void method(){
System.out.println("我有很多钱");
}
}
public class son extends father{
public void method(){
System.out.println("我真的有钱");
}
}
3.注意:
1.方法重写发生在通过继承而相关的不同类中;方法重载可以发生在同一个类中也可以发生在由于继承而相关的不同类中。
2.方法重写具有相同的方法名和返回值类型;方法重载具有相同 的方法名,但是不同的参数列表。