- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java实用教程 第5章 继承与多态 第 5 章 继承与多态 5.1 继承简介 5.2 子类的继承性 5.3 多态 5.4 抽象类 5.5 final修饰符 5.6 内部类 5.7 匿名类 5.1 继承简介 在面向对象程序设计中,继承是不可或缺的一部分。通过继承可以实现代码的重用,提高程序的可维护性。 5.1.1 继承的概念 继承一般是指晚辈从父辈那里继承财产,也可以说是子女拥有父母所给予他们的东西。在面向对象程序设计中,继承的含义与此类似,所不同的是,这里继承的实体是类。也就是说继承是子类拥有父类的成员。 5.1.2 子类对象的创建 在类的声明中,可以通过使用关键字extends来显式地指明其父类。 语法格式为: 修饰符:可选,用于指定类的访问权限,可选值为public、abstract和final。 子类名:必选,用于指定子类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。 extends 父类名:必选,用于指定要定义的子类继承于哪个父类。 [修饰符] class 子类名 extends 父类名 5.1.3 继承的使用原则 子类可以继承父类中所有可被子类访问的成员变量和成员方法,但必须遵循以下原则: (1)子类能够继承父类中被声明为public和protected的成员变量和成员方法,但不能继承被声明为private的成员变量和成员方法; (2)子类能够继承在同一个包中的由默认修饰符修饰的成员变量和成员方法; (3)如果子类声明了一个与父类的成员变量同名的成员变量,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量; (4)如果子类声明了一个与父类的成员方法同名的成员方法,则子类不能继承父类的成员方法,此时称子类的成员方法覆盖了父类的成员方法。 5.1.4 使用super关键字 super关键字主要有以下两种用途。 (1)调用父类的构造方法。 子类可以调用父类的构造方法,但是必须在子类的构造方法中使用super关键字来调用。其具体的语法格式如下: super([参数列表]); 如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数。 (2)操作被隐藏的成员变量和被覆盖的成员方法。 如果想在子类中操作父类中被隐藏的成员变量和被覆盖的成员方法,也可以使用super关键字。 语法格式为: super.成员变量名 super.成员方法名([参数列表]) 使用super关键字 super关键字主要有以下两种用途。 (1)调用父类的构造方法 (2)操作被隐藏的成员变量和被覆盖的成员方法 5.2 子类的继承 子类中的一部分成员是子类自己声明、创建的,另一部分是通过它的父类继承的。在Java中,Object类是所有类的祖先类,也就是说任何类都继承自Object类。除了Object类以外的每个类,有且仅有一个父类,一个类可以有零个或多个子类。 5.2.1 同一包中的子类与父类 如果子类与父类都在同一包中,那么子类继承父类中非private修饰的成员变量和方法。 【例】 有三个类,People类是父类,Student类是继承父类的子类,Teacher类也是继承父类的子类,Example类是测试类。 5.2.2 非同一包中的子类与父类 当子类与父类不在同一包中,父类中使用private修饰符修饰的成员变量和友好的成员变量不会被继承,也就是子类只能继承父类中使用public和protected访问修饰符修饰的成员变量作为子类的成员变量,同样,子类也只能继承父类中使用public和protected访问修饰符修饰的方法作为子类的方法。 5.2.3 继承关系的UML图 当一个类是另一个类的子类的时候,可以通过UML图使用实线连接两个类来表示二者之间的继承关系。实线的起始端是子类的UML图,实线的终止端是父类的UML图。在实线的终止端使用一个空心三角形表示实线的结束。 5.2.4 继承中的Protected 在一个类A中,它所定义的成员变量和方法都被protected所修饰,类A被类B、类C继承,那么在类B与类C中都继承了类A的成员变量和方法。这时,如果在类C中创建一个自身的对象,那么该对象可以访问父类的和自身定义的protected修饰的变量和方法。但是在其他类中,比如Student类,对于子类C自己声明的protected成员变量和方法,只要Student类与C类在同一包中,创建的对象就可以访问这些被protected修饰的成员变量和方法。对于子类C从父类中继承的protected成员变量和方法,只要Student类与C类的父类在同一包中,创建的对象就能够访问继承的protected成员变量和方法。 5
您可能关注的文档
- Java EE企业级应用开发第1章 初识Spring的基本应用.ppt
- Java EE企业级应用开发第2章 Spring中的Bean.ppt
- Java EE企业级应用开发第3章 Spring AOP.ppt
- Java EE企业级应用开发第4章 Spring的数据库开发.ppt
- Java EE企业级应用开发第5章 Spring的事务管理.ppt
- Java EE企业级应用开发第6章 初识MyBatis.ppt
- Java EE企业级应用开发第7章 MyBatis的核心配置.ppt
- Java EE企业级应用开发第8章 动态SQL.ppt
- Java EE企业级应用开发第9章 MyBatis的关联映射.ppt
- Java EE企业级应用开发第13章 数据绑定.ppt
文档评论(0)