java语言中,overload(重载)和override(覆盖)有何区别?

[复制链接]
查看11 | 回复3 | 2016-5-31 19:05:10 | 显示全部楼层 |阅读模式
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载....
回复

使用道具 举报

千问 | 2016-5-31 19:05:10 | 显示全部楼层
overload(重载):是在同一个类中,方法名相同,参数的个数、顺序、类型不同的方法(注意跟返回值没有关系)如:public void getA(){}public void getA(int a){}override(覆盖):这个覆盖只出现在父类与子类之间,也称作 重写,也就是说一个A类继承B类,B类中有一个方法...
回复

使用道具 举报

千问 | 2016-5-31 19:05:10 | 显示全部楼层
覆盖是父与子的关系,是子的把父的给隐藏了,重载是在一个类中,方法名相同,但参数的个数和类型至少有一项不同,调用的时候会根据参数找到对应的方法...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行