分享

java重写和重载的区别

 昵称22369024 2015-03-22
相同点:方法的重写Overriding和重载Overloading是Java多态性的不同表现

不同点:重载(发生在同一类中,方法名相同,参数列表不同)

发生在父子类中,子类中有一个方法名,参数列表和返回值类型与父类相同的方法完全相同时, 称之为方法重写


   方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,如果在子类中定义某方法与其父类有相同的名称和参数,且方法的返回值类型与抛出异常的类型各自与父类的一致,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。

   重载Overloading是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

  另外:static,native及synchronized方法不能被重写.

如果你认为重写只是在子类中简单的替换了一个方法,你就很容易认为static 方法也能 被重写。事实上,我有很多包含们举例指明static 方法能被重写的代码的邮件。然而,这 些并没有考虑方法重写在运行时决定哪个版本的方法被调用的细节问题。下面的代码似乎表 明static 方法是怎样被重写的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多