方法重载
在同一类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可,该同名方法被称为方法重载。
特点:与返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型)。
示例:
public String get(String name){
return null;
}
public int get(String name, int age){
return 0;
}
方法重写
在继承(extends)中,子类可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖或重写。在程序执行时,子类的方法将覆盖父类的方法。
注意:
- 重写的方法参数列表,参数名可以不同。
- 构造函数(方法)不能被重写。
- 父类静态方法(被static修饰的方法),不能被重写,因为static修饰的是属于当前类特有的。
- 子父类同名的成员变量不会重写(不会覆盖),编译时什么类型,调用的成员变量就是编译时指定类型的成员变量(多态性)。
示例:
public class Animal {
protected Object eat (String val) {
return val;
}
}
public class Person extends Animal{
@Override
public String eat(String val) {
return val;
}
}
@Override是方法重写注解,不是必要的,没有该注解的重写方法还是重写方法,只是为了更直观知道该方法是重写方法,可以看做它是方法重写的标识。