重载
在同一个类中,方法名相同,但是各自的参数不同,比如:参数的个数不同,参数的顺序不同以及方法的返回值类型不同,称为方法的重载。
重写
当子类继承父类时,子类定义了一个和父类相同的方法名,并且该方法的返回值类型相同,参数相同,称为方法的重写。
以Person类和Stu类为例,Person类具有read()方法和read(int hour)方法,其作用分别是“输出读书”和”在hour时读书“,这两个方法就是方法的重载。同时子类Stu 继承了Person类,需要输出“学生读书”和“学生在hour时读书”的行为,就需要方法的重写,重写Person中的read()方法和read(int hour)方法。
public class Work01 {
public static void main(String[] args) {
Person person = new Person();
person.read();
person.read(8);
Person stu = new Stu ();
stu.read();
stu.read(8);
}
}
class Person{
public void read() {
System.out.println("读书");
}
public void read(int hour) {
System.out.printf("%d点在读书\n",hour);
}
}
class Stu extends Person{
@Override
public void read() {
System.out.println("学生在读书");
}
@Override
public void read(int hour) {
System.out.printf("学生%d点在读书\n",hour);
}
}
运行结果:
总结
- 如果方法的方法名相同,但是参数顺序不同或参数个数不同或参数类型不同是方法的重载。
- 如果方法的方法名相同,参数顺序相同、参数个数相同、参数类型相同,返回值也相同,就是方法的重写。