Steve_swg 2017-03-08 12:58 采纳率: 66.7%
浏览 816

关于重写,重载,覆盖的几个问题

有点混乱,有几个没懂。
1,重写和覆盖有什么区别,为什么覆盖的和被覆盖的方法要一模一样,这样的话什么情况下用覆盖?最好有个例子。
2,重写就是在子类中重新写一个同名的方法吗,然后引用对象不同就输出不一样?
3,重载是不是就是同一个方法名,然后参数类型和数目的不同,应用的时候自动匹配?重载还有其他作用吗?
4,如果重载就那个作用,那对于重写和覆盖我就根本看不出来有区别或者说用于什么地方?
希望帮我解答一下,谢谢。图片图片图片图片

  • 写回答

2条回答 默认 最新

  • 谜知晓x嘘 2017-03-08 13:07
    关注

    都要求方法同名。
    都可以用于抽象方法和非抽象方法之间。
    方法覆盖和方法重载具有以下不同点:
    方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致
    方法覆盖要求返回类型必须一致,而方法重载对此不做限制。
    方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承而来的方法)。
    方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
    父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次。

    评论

报告相同问题?