JAVA:方法重写和方法重载的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dian1pei2xiao3/article/details/82698291

                                             重载                  

定义同一类中两个或者多个方法的重写

规则:                         

方法名                 相同

参数列表             不同 (个数,类型,参数顺序)

返回类型              可以相同也可以不同

方法的返回类型不同不足以成为方法的重载

重载是发生在编译时的,因为编译器可以 根据参数的类型来选择使用那个方法

                    

   

                                               重写

定义:有继承关系在子类中发生

规则:

方法名                                        相同
参数列表                                     相同
返回值类型                                 可以相同也可以是原类型的子类型
访问性                                         重写方法不能比原方法访问性差
异常                                            重写方法不能比原方法抛出异常多
final类型                                     被final修饰的不能重写
private                                        被private修饰的不能重写

 static                                         被static修饰的不能重写

重写发生在运行时,因为编译期编译器不知道并且没办法确定该去调用哪个方法,JVM会在代码运行的时候做出决定

重载和重写的不同:

  重载 重写
使用条件 同一类 继承关系,子类中
参数列表 不同 相同
返回类型 可同可不同 相同
访问权限 无要求 有特殊要求,见规则
次数限制 重载多次 父类方法只能被子类重写一次 
作用时间 编译期 运行期

猜你喜欢

转载自blog.csdn.net/Dian1pei2xiao3/article/details/82698291