一、重载
1、定义
Java中的重载是指在同一个类中,同名的方法,但是参数个数、顺序或类型不同,从而实现不同的功能。2、规则
重载方法,必须要满足以下条件: - 方法名必须相同,参数列表不同。 - 返回类型可以不同,但是参数列表必须不同。 - 可以改变方法的修饰符。 - 可以声明新的异常,或者不声明任何异常。3、代码示例
public class OverloadTest { public void test(){ System.out.println("无参方法"); } public void test(int i){ System.out.println("重载带参方法: " + i); } public void test(String s){ System.out.println("重载带参方法: " + s); } }
二、重写
1、定义
Java中的重写是指在子类中重新定义与父类同名、同参的方法,但是方法体可以不同。通过重写,可以实现多态的特性。2、规则
重写方法,必须要满足以下条件: - 方法名必须相同,参数列表也必须相同。 - 返回类型必须与原方法的返回类型相同,或者是其子类。 - 访问修饰符可以选择和原方法相同或者更为宽松。 - 不能抛出比原方法声明更大的范围的受检查异常。3、代码示例
class Animal { public void move(){ System.out.println("动物可以移动"); } } class Dog extends Animal{ public void move(){ System.out.println("狗可以跑和走"); } }
三、重载和重写的区别
1、参数列表不同
重载方法是指在同一个类中,方法名相同,但是参数列表不同。而重写是指子类中重写父类的方法,方法名及参数列表必须一致。2、返回值
重载方法的返回值可以相同或不同,没有限制;但是重写方法的返回值必须相同或为其子类对象。3、访问修饰符
重载方法的访问修饰符不限制,但是重写方法的访问修饰符不能低于父类中方法的访问修饰符。4、异常
重载方法,新方法可以声明新的异常,或者不声明任何异常;而重写方法不允许抛出比原方法声明更大的范围的受检查异常。5、作用
重载方法可以在同一类中实现一个方法具有各种可能的操作;而重写方法则是将父类中的方法重新实现,在不同的对象上产生不同的作用。