详解java中的重载与重写

1.重载(Overload)与重写(Override)的概念:

重载:重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数列表却不相同,方法体也不相同,最常见的重载就是类的构造方法(也可以说,构造器是强制重载方法名的一个主要的原因)。
重写:重写就是子类的方法覆盖父类的方法,要求子类方法名与参数列表都与父类相同。

2.如何判断两个及两个以上的方法是否重载:

重载的判断取决于传入的参数列表:
       (1).参数类型不同 
       (2).参数顺序不同
       (3).参数个数不同
注意:不能根据方法的返回值类型来判断是否重载,例如:
                         public  int  A(int i);
                         public  double(int i);
           这两个方法不能构成重载。

3.关于重写:

       重写发生在父类与子类之间。当子类覆盖了父类中的方法时,子类对象则无法再访问父类中被覆盖的方法,如果子类对象想要调用父类中的方法,则需使用super关键字 但是需要注意的是:静态方法可以被子类继承,但是不能被重写。如果父类中有一个静态的方法,子类也有一个与父类名,参数类型,参数个数都一样的方法,并也用static修饰,子类会把原方法隐藏掉,通俗讲就是父类的方法和子类的方法是两个没有关系的方法。只有普通方法的调用是可以多态的。除此之外,还需注意的一点是:覆盖方法和被覆盖方法要么都是实例方法,要么都是类方法。
总结(方法重写要遵循“两同两小一大”原则):
           (1).两同:方法名相同,参数列表相同。
           (2).两小:①子类返回值类型比父类方法更小或相等
                           ②子类方法声明抛出的异常应比父类方法声明抛出的异常类更小或相等。
           (3).一大:子类方法的访问权限硬币父类的访问权限更大或相等。

4.重载代码示例:

        

5.重写代码示例:

      

      
 
 
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值