方法重载Overload和方法的重写Overriding的区别。Overload的方法是否可以改变返回值的类型?　方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是　父类与子类　之间多态性的一种表现,重载Overloading是　一个类中多态　性的一种表现。　记忆窍门:“　父　亲告诉孩　子---写的这么差,作业　重写　如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被　重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。　如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。　Overloaded的方法是可以改变返回值的类型。　重载(Overloading)　每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。只能重载构造函数　重载的规则:　1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);　不能　通过访问权限、返回类型、抛出的异常进行重载;　3、方法的异常类型和数目不会对重载造成影响;　被重载的方法必须改变参数列表;可以改变返回类型;可以改变访问修饰符;可以声明新的或更广的检查异常;　方法只能够在　同一个类中或者在一个子类中被重载　。　/***　Overloading(重载,过载)*　方法名相同,参数类型不同或者参数类型顺序不同*　返回值,访问修饰符,异常可以不一样*/public　class　Overloading　{　public　int　test　(){　System.out.println(　"test1"　);　return　1;　}　public　void　test　(int　a){　System.out.println(　"test2"以下两个参数类型顺序不同　public　String　test　(int　a,String　s){　System.out.println(　"test3"　);　return　"returntest3"　;　}　public　String　test　(String　s,int　a){　System.out.println(　"test4"　);　return　"returntest4"　;　}　public　static　void　main(String[]　args){　Overloading　o　=　new　Overloading();　System.out.println(o.test());　o.test(1);　System.out.println(o.test(1,　"test3"　));　System.out.println(o.test(　"test4"　,1));　}}　复制代码　重写(Overriding)　能够在需要新的子类特有行为时重新在子类中定义方法。　重写(覆盖)的规则:(参数,访问修饰---且不能为private,返回值,异常)　1、参数必须完全相同,否则不能称其为重写而是重载.　2、访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。　3、返回值必须一致;　4、所抛出的异常必须一致或是其子类;　5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。　6、静态方法不能被重写为非静态的方法(会编译出错)。不能重写被标示为final的方法;　继承是前提,如果不能继承一个方法,则不能重写这个方法。　/***　Overriding(重写,覆盖)*　重写是子类继承父类对父类的方法进行修改。方法名,参数,返回值必须一样。*　访问级别的限制性和异常不能比被重写的方法强*/class　TestClass　{　public　void　test　(){　System.out.println(　"这是TestClass的test方法"　);　}}　public　class　Overriding　extends　TestClass　{　public　static　void　main(String[]　args)　{　new　Overriding().test();//使用子类中重写的　test　方法　}　@Override　public　void　test　()　{　System.out.println(　"这是Overriding的test方法,重写了TestClass中的方法"　);　}}　复制代码