- 重载:发生在一个类中,方法名相同,参数类型不同,个数不同,顺序不同。满足前面的条件后,方法的返回值和访问修饰符可以不同。
//方法名称相同,参数不同
class Student{
void say(int a){
System.out.println(a);
}
void say(String word) {
System.out.println(word);
}
}
- 重写:发生在父类和子类之间,方法名和参数列表必须相同
重写还有更细的点就是,返回值类型必须小于等于父类,抛出的一场必须小于等于父类,访问修饰符大于等于父类。
如果父类方法访问修饰符为private或者有final修饰,则不能重写该方法
//方法名称、参数必须完全相同
class People{
void say(String word){
System.out.println("People: " + word);
}
}
class Student extends People{
@Override
void say(String word) {
System.out.println("Student: " + word);
}
}