关于overload和override的区别

资料来自网络。

overload(通常被翻译为过载或重载)

一般语境里overload是对method(方法)而言的,可以指一个类中多个名字相同而参数类型列表不相同的方法,

这个名字代表的方法就是被overload了的。编译器会根据参数类型列表的不同来决定调用叫这个名字的很多方法中具体的哪一个。


>>override(通常被翻译为覆盖/重写)

一般语境里,如果说这个method(方法)是被override来的,就是说在定义这个方法的类的父类中有一个与这个方法同名且参数类型列表相同的方法,在子类中,这个方法被override了。在对这个子类的实例调用该方法时,编译器确切的知道调用的是这个子类的方法。



加上百度知道的大牛回答:


您好,提问者:
   还是以代码的例子看一下区别吧。
1.重载的概念:
----->在同一个类中,允许存在同名函数,但它们的参数个数或者参数类型不同即可。
public static void main(String[] args){
System.out.println(add(1,2));
System.out.println(add(1.11,2.22));
}
//返回一个int类型相加的和
public static int add(int a, int b){
return a + b;
}
//返回一个double类型想加的和
public static double add(double a, double b){
return a + b;
}
 
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。
简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。

重写就是(这个方法的类的父类中有一个与这个方法同名且参数类型列表相同的方法)子类重写了父类的方法。
比如:
class Fu{
   int num = 3;
}
class Zi extends Fu{
   int num = 5;
}
这时候Zi类继承了Fu类,也拥有了num,这时候输出num,JVM(虚拟机)会先去Fu类中查找,输出Fu类中的num,但是Zi类有num,所有在运行Zi类的时候重写了num的值,
输出5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值