Java中的继承重载覆盖.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java中的继承、重载、覆盖、 第一节 继承的概念 1.1.1 为什么使用继承 使一个类的数据成员和成员方法可以被另一个类(派生类或子类)重用。继承的特性实现了真正意义上的代码复用,子类可以从父类继承所有非private的数据成员和成员方法,以体现其共性。在子类中也可以新定义一些自己特有的数据成员和成员方法,以体现其个性。 1.1.2 继承的格式: class 子类名 extends 父类名{ } 继承通过extends关键字来实现的。 第二节 子类和父类的关系 2.2.1 方法之间 方法覆盖是面向对象语言的特性,即父类中的一个方法在子类中获得重新定义,但是方法名、参数列表和返回值均不变。 2.2.2 属性之间 如果我们在子类定义了与父类相同的属性,那么我们称之为属性(数据成员)的隐藏。 2.2.3 构造器之间 如果子类没有定义自己的构造方法,则它将自动调用父类的无参数的构造器。如果子类自己定义了构造器,则在创建对象时,它将先执行自父类的无参数的构造器,然后再执行自己的构造器。 第四节 super的意义和用法 4.4.1 定义 super是一个关键字,代表父类对象的引用。 4.4.2 用法 (1)用来访问直接父类隐藏的(属性)数据成员,其使用形式如下: super.数据成员; (2)用来调用直接父类中被覆盖的成员方法,其使用形式如下: super.成员方法(参数); (3)用来调用直接父类的构造器,其使用形式如下: super(参数)。 注意:super必须放在调用其构造器中的第一行,而且子类中覆盖方法可以通过 super(…) 来访问父类中被覆盖的方法,但只能访问其直接父类,而不能跨级访问。 第五节 覆盖与重载 5.5.1 覆盖的概念 方法覆盖是面向对象语言的特性,即父类中的一个方法在子类中获得重新定义,但是方法名、参数列表和返回值均不变。 5.5.2 覆盖的规则 (1)覆盖的方法之间必须拥有相同的方法名和参数列表,即要求参数列表中参数的个数、排列顺序以及参数的类型要相同。注意,参数的名称是否相同,不是覆盖的决定因素; (2)覆盖的方法之间,其返回类型必须相同; (3)一个静态方法只能被覆盖方法为一个静态方法,但是不能被覆盖为一个非静态方法; (4)父类中被子类覆盖的方法,在每一个子类中,最多只能被覆盖一次; (5)覆盖方法的访问控制修饰符所定义的访问控制不能小于父类中被覆盖方法的访问控制修饰符定义的范围,即覆盖方法不能比原有方法访问范围窄; (6)覆盖方法声明的抛出异常,只能是被覆盖方法抛出异常的子类,或者一样,或者不抛出任何异常。 5.5.3 重载的概念 方法重载是编程语言均有的特性,与面向对象语言无关,指多个方法拥有同一个名字,但每个方法都有一套自己的不同与其他同名方法的参数列表,这样编译器可以根据不同的参数列表来调用相应的方 5.5.4 重载的规则 (1)重载的方法之间必须拥有不同的参数列表,即要求参数列表中参数的个数、排列顺序或类型不同。参数的名称是否相同,不是重载的决定因素; (2)重载的方法必须在同一个类中定义,包括继承自父类中的方法,并且有两个或两个以上的同名、不同参数列表的方法存在; (3)重载方法的返回类型、访问修饰符以及抛出的异常,都不是重载方法判断的决定因素; (4)重载方法之间可以互相调用,如同不同方法的调用,只要明确参数列表即可; (5)一个静态方法既可以被重载为一个静态方法,也可以被重载为一个非静态方法,因???重载方法本质上是不同的方法; (6)重载方法之间对修饰符和抛出的异常无限制,而覆盖方法之间对修饰符和抛出的异常具有限制条件,原则上要保持扩展性满足子类对父类的继承扩展的面向对象的特性。

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档