Java----方法重载和重写的区别
方法重载和重写的区别
方法重载
在同一个类中,出现多个方法名相同参数列表不同的方法。参数列表不同指参数列表中的参数个数或者是参数类型不同或者是参数的顺序不同。注意:不能通过访问权限、返回类型、抛出的异常进行重载。
注意:通过上面的这些例子可以看到,因为参数列表的不同或者是方法名不同,java虚拟机才可以识别,调用相应的方法。
从例子可以看到,这个程序在编译的时候发生错误,说明java虚拟机不能通过返回值类型区分不用的方法。
返回值类型不能表示不同方法,其实是可以理解的,因为方法的返回值是在程序执行方法之后得到的结果,而在程序执行方法前,这个结果的类型是不确定的,所以不能用来表示不同的方法。
方法重写
首先方法重写只能发生在子类中,在子类中出现了方法和从父类中继承的方法同名同参数同返回值类型的情况,这种叫做方法重写。
方法重载和重写的区别
在这里要注意的是:在子类中重写父类的方法时,方法的权限不能降低。比如说在父类中方法是default(默认访问权限修饰符),那么子类重写了这个方法时,方法的访问权限不能低于父类中方法的访问权限,所以在子类中方法的访问权限可以使public,但是不能是private。