
java重写与重载的区别.doc
7页重写与重载的区别实验组员:2014022124 陈剑明2014022138 李欢欢2014022129 张青2014021033 周超艳1. 方法重写(Overriding)在 java 语言中,利用 extends 关键字来表示一个类继承了另一个类在 Java 中,子类可继承父类中的方法,而不需要重新编写相同的方法 但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写 方法重写又称方法覆盖 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表, 则新方法将覆盖原有的方法如需父类中原有的方法,可使用 super 关键字,该关键字引用了当前类的父类重写方法只能存在于具有继承关系中 , 重写方法只能重写父类非私有的方法方法重写是指在子类中定义的一个方法,其名称、返回类型及参数列表正好与父类中某个方法的名称、 返回类型及参数列表相匹配,那么可以说,子类的方法重写了父类的方法图 1.1 方法重写图重写方法的规则:1.1 参数列表必须完全与被重写的方法的相同 , 否则不能称其为重写而是重载1.2 返回类型必须与被重写的方法的返回类型相同,否则不是重写而是重载。
访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)图 1.2 方法重写访问修饰符错误图1.3 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常 例如,父类的一个方法申明了一个检查异常 IOException,在重写这个方法是就不能抛出 Exception,只能抛出 IOException 的子类异常,可以抛出非检查异常图 1.3 方法重写异常等级错误图只允许多层继承,而不能多重继承:在 JAVA中只允许单继承,不能使用多重继承,既一个子类只能继承一个父类,如图 1.4与图 1.5所示但是允许进行多层继承,即一个子类可以有一个父类,一个父类还可以有一个父类如图 1.6与图 1.7所示:图 1.4多重继承图图 1.5 多重继承程序图图 1.6 多层继承图图 1.7 多层继承程序图2. 方法重载(Overloading)方法重载是让类以统一的方式处理不同类型数据的一种手段Java 的方法重载, 就是在类中可以创建多个方法,它们具有相同的名字, 但具有不同的参数和不同的定义 调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法 , 这就是多态性。
图 2.1 方法重载图方法重载的规则:2.1 不能通过访问权限、返回类型重载但实际上虽然会提示输入有误,但强制程序时程序仍会执行如图 2.2 所示:图 2.2 方法重载错误图2.2 方法的异常类型和数目不会对重载造成影响;2.3 必须具有不同的参数列表;2.4 可以有不同的返回类型,只要参数列表不同就可以了;2.5 可以有不同的访问修饰符;2.6 可以抛出不同的异常;3. 方法的重载与重写的区别表 3.1 方法的重载与重写的区别序号区别点 重载 复写1 单词 Overloading Overriding2 方法的名称相同,参数的类型或个数不同 方法名称、参数的类型、返回值类型全部相同3定义对权限没有要求 被重写的方法不能用哦与更严格的权限4 范围 发生在一个类中 发生在继承类中。












