java中重载(overload)与重写(override)的区别

方法重载(overload):

方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同的定义,调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性,重载的时候方法名一样,参数类型和个数不一样,返回值类型可以相同可以不同,可以有不同的访问修饰符,可以抛出不同的异常.

方法重写(override):

父类与子类之间的多态性,对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写,在java中子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法重写,方法重写又称方法覆盖

若子类中的方法与父类中的某一方法具有相同的方法名,返回类型,参数列表,则新方法将覆盖原有的方法,如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类

子类函数的访问修饰权限不能小于父类的

重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常(父类的异常宽泛性比子类的广)

posted @ 2017-02-10 10:56  卫盾  阅读(9569)  评论(0编辑  收藏  举报