广州暨华电脑学校
咨询热线:020-85566216

诚        毅        精      勤

当前位置:所在位置: 广州电脑培训 >> 电脑技术 >> java >> 正文

Java中的重载、覆盖和隐藏

发布时间:2018/2/28 17:52:21 内容来源::广州暨华电脑学校 点击:

  重载(overload):发生在一个类的内部,而且是针对方法而不是域而言。若方法的签名相同,但参数的个数或者参数的类型不同,则构成了重载。但返回类型不在考虑范围之内,也就是说,如果仅仅是返回类型不同,则构不成重载。

  覆盖(override):发生在父类和子类之间,而且是针对实例方法(即非静态方法)而不是域而言。构成覆盖要满足以下条件:

  1、父类中的static方法不可以被覆盖;

  2、父类中的final方法不可以被覆盖;

  3、方法的签名、参数个数以及参数类型都要相同;

  对于返回类型要说明两点:

  1)如果返回类型是引用类型,则覆盖方法的返回类型可以声明为父类方法声明的返回类型的子类型;

  2)如果返回类型是基本类型,则覆盖方法的返回类型必须和父类方法的返回类型相同;

  对于方法参数的说明:不管父类方法中的参数是否是final的,子类都可以修改这个参数;

  4、子类方法的访问权限要大于等于父类的访问权限;

  5、子类方法可以改变某些方法修饰符,如:synchronized、native和strictfp。

  6、子类方法的throws子句可以和父类方法不同,它列出的每一个异常类型都应该和父类中的异常类型相同或者是父类异常类型的子类;

  隐藏(hidden):发生在父类与子类之间,而且只是针对静态方法和域。说明:被声明为final的类方法不可以被隐藏。

  实例方法被子类的方法覆盖时,实际被调用的方法是在执行时决定的。

  类方法被子类的方法隐藏时,实际被调用的方法是在编译时决定的。

  • 上一篇电脑技术:
  • 下一篇电脑技术:
  • 学校简介 |专业课程 | 学生就业 | 参观学校

    学校地址:广州天河区五山路金华园区C座3楼307(华南理工大学南门旁)

    学校名称:广州暨华电脑培训学校 联系电话:020-85566215

    2002-2019 广州青大教育信息咨询有限公司 版权所有 备案/许可证编号为:粤ICP备11083420号-11