方法的重载与重写

方法的重载

● 概念: 同一个类中相同的方法名不同的形参列表构成重载

两同一不同
    同一个类,同一个方法名,不同的形参列表

    不同的形参列表 :形参的个数,类型,顺序不同。

● 如何确定类中某一个方法的调用:方法名 + 形参列表

注意 : 方法的重载和权限修饰符,返回值类型,形参的名字无关。

举例:

public void add(int a,int b){}
public void add(double a,double b){}


方法的重写
方法的重写:在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。
注意:当子类重写了父类中的方法后,那么再通过子类对象调用相同的方法,实际上调用的是子类重写父类的方法。

为什么要有方法重写 :

  1. 如果子类对父类中的方法不满意那么可以考虑方法的重写
  2. 为了使用多态也会考虑方法的重写

说明 :

  1. 方法的格式:
权限修饰符 返回值类型  方法名(形参列表){
		方法体;
}
  1. 说明:
    ①子类重写的方法的权限修饰符 不小于 父类被重写方法的权限修饰符。
    ②子类重写方法的方法名和形参列表必须和父类被重写方法的相同。
    ③父类被重写的方法的返回值类型            子类重写的方法的返回值类型
                                void                                         void
                        基本数据类型                      对应的基本数据类型
                        引用数据类型                      对应的类型及子类的类型
    ③子类方法抛出的异常不大于父类被重写方法的异常

  2. 注意:

    ①父类中被private修饰的方法,子类不能重写。
    ②子类和父类中相同的方法要么同时加static(不是方法的重写)要么同时不加static(方法的重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

从编译和运行的角度看方法的重载与重写

重载,是指允许存在多个同名方法,而这些方法的参数不同。编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。Java的重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。 所以:对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为 “早绑定”或“静态绑定”
而对于多态,只有等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,这称为 “晚绑定”或“动态绑定”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值