本文共 1656 字,大约阅读时间需要 5 分钟。
https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=6
方法重写的原则:
方法重载的原则:
重写和重载的不同:
帮助简单记忆:
从定义上区分;
重载在一个类里面,方法名相同,方法参数不同。
重写在子类父类之间,子类去重写父类,方法名相同,方法参数相同。
重写的两同两小一大:
方法名相同、方法参数相同。
它的返回类型小于等于父类的,它抛出的异常小于等于父类的。
(返回类型,比如返回的是Person这个类,那我如果返回Person的子类,不就是比它小吗 )
它的访问权限大于等于父类的。
重写的时候 一大两小两同 方法名、参数相同,返回类型、异常范围小于等于父类的,访问权限大于等于父类的
重载在编译期绑定,在编译的时候,编译器根据它参数的类型来决定说我绑定哪个方法。
重写在运行期绑定,它是在运行时根据这个引用变量所指向的实例对象来决定我调用哪个实例对象的方法。
重写(覆盖)是子类对继承的父类的方法,要求重写的方法名,参数,返回类型(可以是子类型)均相同。且访问权限不能小于父类中的访问权限,不能抛出更多的异常。是运行时多态。
重载是一个类中有多个名字相同的方法,但是他们的参数类型不用,返回值可以不同(但是仅仅返回值不同不能进行重载)。是编译时多态。
方法的重载指在同一个类中,对于同一个方法名的方法提供不同的参数表和返回值。
方法的覆盖指子类重新定义父类的方法,重写的方法和父类的方法有同样的方法名、参数表、返回值。需要被覆盖的方法一般不限定其范围。
本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7414017.html,如需转载请自行联系原作者