• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-09-22)  入门指导 答疑解惑 |   1 条评论  117 
    文章评分 1 次,平均分 5.0

    今天群里有网友搞不清楚一个问题:

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

    重载和重写属于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 + " !");

    }

    }

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

    如果大家对本系列文章有疑问,可以直接在公众号留言,小编第一时间联系原创作者帮你耐心解答。

    技术人员都有自己的情怀,深陷其中而不被理解,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),一个开发人员的家,来诉说自己的故事。

    ">Ubuntu编译最新版本WebKit

     

    本文原始地址:http://www.coderonline.net/faq-the-difference-between-overloading-and-overriding-in-java.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于

    发表评论

    表情 格式
    1. 好文章,内容观念明确.禁止此消息:nolinkok@163.com

      道路交通标线 评论达人 LV.1 2年前 (2016-05-31) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册