前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【答疑解惑】Java中重载和重写的区别

【答疑解惑】Java中重载和重写的区别

作者头像
程序员互动联盟
发布2018-03-14 15:20:22
6470
发布2018-03-14 15:20:22
举报
今天群里有网友搞不清楚一个问题:

重载和重写属于Java面向对象中多态基础知识点,下面就给大家说说多态。

什么叫做多态?

多态指的是在继承关系中子类继承父类的行为,这种行为在子类具体实现时可以是不一样的。比如动物这一父类中有move()方法,在鸟类子类中和鱼类子类中move的实现是不一样的。在Java中多态是通过重写(@Override:把父类的方法重新实现)和重载(@Overload:通过方法参数的不同在子类中来重新创建名字相同的方法)来实现的。

重写:

重写(Override)是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Override)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

重载:

重载(Overload)是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们参数列表不同,则称为方法的重载(Overload)。

比如父类:

public abstract class Animal { public abstract void move(String string); public void cry() { System.out.println("Animal is cry!"); } }

在子类中:

public class Bird extends Animal { @Override public void move(String string) { System.out.println("Bird is move! " + string); } @Override public void cry() { super.cry(); System.out.println("Bird is crying!"); } public void eat() { System.out.println("Bird is eatting !"); } public void eat(String food) { System.out.println("Bird is eatting " + food + " !"); } }

对于上面的代码你能分清楚哪些方法是重载哪些是重写吗?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档