• 方法重载和覆盖不一样


    方法的重载的规则:方法名称一样,其他不一样

    • 方法名称必须相同。
    • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为方法的重载。
    • 参数列表不同包括:个数不同、类型不同和顺序不同。
    • 仅仅参数变量名称不同是不可以的。
    • 跟成员方法一样,构造方法也可以重载。
    • 声明为final的方法不能被重载和覆盖。这个非常容易忽略
    • 声明为static的方法可以被重载但不能覆盖(除非子类是静态类)
    • 静态方法是可以重载,但不可以重写的(如果子类是静态类才可以重写)!
      public class AA {
      static void a(int a) {
      }
      static void a(int a, int b) {
      }
      }

    方法的覆盖:方法签名一样,只是功能不一样

    • 覆盖方法的返回类型、方法名称、参数列表必须与原方法的相同。
    • 覆盖方法不能比原方法访问性差(即访问权限不允许缩小)。
    • 覆盖方法不能比原方法抛出更多的异常。
    • 被覆盖的方法不能是final类型,因为final修饰的方法是无法覆盖的。
    • 被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
    • 被覆盖的方法不能为static。子类是静态可以覆盖。http://blog.csdn.net/wz5779354/article/details/52166115

     

    想见:

    http://www.weixueyuan.net/view/5989.html

  • 相关阅读:
    url编码
    客户端安全-xss-1类型介绍
    阿里云扩容教程
    jquery获取和设置表单数据
    uMlet建模工具
    phpstorm的调试工具xdebug
    服务器如何处理http请求
    http基础实战
    协程
    Goroutine(协程)为何能处理大并发?
  • 原文地址:https://www.cnblogs.com/muffe/p/6579946.html
Copyright © 2020-2023  润新知