1.方法的重载
- 同一个类中
- 方法名相同
- 参数个数或类型不同
- 与返回值、修饰符无关(重载方法时,只需要关注方法名和参数列表,而不需要关心方法的返回类型或访问控制修饰符。)
2.方法的重写
- 在子类和父类中
- 方法名相同
- 参数个数和类型相同
- 返回值类型相同或是其子类
- 访问权限不能严于父类
3.两者之间的区别:
4.示例:
Test类:创建对象并调用其方法
public class Test {
public static void main(String[] args) {
Demo02 demo02 = new Demo02("小明",01,"男");
System.out.println("重写后:");
demo02.print();//重写后
System.out.println("重载前:");
demo02.a();//重载前
System.out.println();
System.out.println("重载后:");
demo02.a(8);//重载后
}
}
Demo01:父类储存姓名、ID、性别等信息。
public class Demo01 {
public String name;
public int id;
public String sex;
public void print(){
System.out.println("AAAAAAA");
}
public Demo01(String name, int id, String sex) {
this.name = name;
this.id = id;
this.sex = sex;
}
}
Demo02:子类继承Demo01,并重写print方法。
public class Demo02 extends Demo01{
public Demo02(String name, int id, String sex) {
super(name, id, sex);
}
public void print(){//重写后
System.out.println("ID:"+id+",姓名:"+name+",性别:"+sex);
}
public void a(){//重载前
System.out.println("aaaaa");
}
public void a(int num){//重载后
for (int i = 0; i < num; i++) {
System.out.println("aaaaa");
}
}
}
运行结果: