重载和重写

重载和重写的区别

重载:

  是发生在同一类中,

  方法名称必须相同,

  方法参数必须不同(参数个数不同,参数类型不同,参数顺序不同),

  与返回类型无关,

  访问修饰符无关,

  可以抛出异常

重写:

  发生在有继承关系的子类中,

  方法声明相同,

    方法名称相同,

    参数列表相同,

    返回类型相同,

    访问修饰符不能更小,

    不可抛出更多异常,但可抛出非编译异常(如运行时异常RuntimeException)。

  

  当父类访问修饰符为private时,即使子类有同名的方法,也不能重写。

  非静态方法不能被重写成静态方法。

  静态方法,不能被重写。

  父类的静态方法不能被重写,重写只适用于实例方法,不能用于静态方法,

  静态方法可以隐藏,不能@Override和@Overload

  

  静态方法只与类有关,static方法不是后期绑定,在编译期就绑定了。

  静态方法不会进行多态判断,只与声明的类有关。

  

原文地址:https://www.cnblogs.com/tongs/p/7435151.html