- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.1 继承 类之间的继承关系是现实世界客观事物之间分类关系的直接模拟,如飞机、汽车和火车均属于交通工具,这三个类可以继承交通工具类的属性和方法,并扩展自己特有的属性和方法。 面向对象程序设计术语中,若类B继承类A,则类A称为父类,类B称为子类。父类也可以叫作超类、基类,子类也可以叫作派生类。 8.1.1 使用继承 Java语言使用关键字extends表示父类与子类之间的继承关系,语法形式如下: class 子类名 extends 父类名 { //子类体 } 8.1.1 使用继承 面向对象程序设计中根据子类可以继承父类的数量分为多继承和单继承两种,Java语言只支持单继承,即一个子类只能继承一个父类。 子类是基于父类创建的,它可以继承父类的部分数据域和方法,在访问修饰符的作用下,子类对父类数据域和方法的继承受到以下一些限制。 (1)子类与父类在同一包的情况。子类可以继承父类中除private成员以外的所有成员,继承来的成员的可访问性保持不变。 (2)子类与父类不在同一包的情况。子类可以继承父类中public和protected修饰的成员,继承来的成员的可访问性保持不变。 (3)任何情况下子类不能继承父类的private成员,但可以通过继承到的方法进行间接访问。 8.1.1 使用继承 例8-1:在第7章的矩形类Rectangle4的基础上扩展一个名为Cuboid1长方体类。子类中增加表示长度的数据域length和计算体积的方法getVolume。 UML类图的继承关系: 8.1.2 创建子类对象 Java语言规定子类不能继承父类的构造方法,但是必须在子类的构造方法中调用父类的构造方法。 关键字super可以用来调用父类的构造方法,其使用方式如下: super(); //调用父类的无参构造方法 super(参数); //调用父类的有参构造方法 Java语言规定,构造方法的第一条语句必须通过super调用父类的构造方法,或者通过this调用本类的另外一个构造方法。如果编写构造方法时没有显示地写出这两条语句之一,则编译器会自动将super()作为构造方法的第一条语句 。 8.1.2 创建子类对象 Java语言中,创建子类的对象时,将会沿着继承层次自下而上依次调用所有父类的构造方法,称为“构造方法调用链”。 例8-2:演示构造方法调用链。 关键字super不仅可以在子类构造方法中调用父类构造方法,还可以用来调用父类的方法中调用父类的其他方法,其使用形式如下: super.方法名(参数); 8.1.3 方法覆盖 子类可以从父类继承实例方法,但是某些情况下父类的方法在子类中并不适用,此时必须在子类中保留方法头不变,对方法体进行修改,称为方法覆盖(override)。 Java语言对方法覆盖进行了如下规定: (1)方法覆盖只能对子类继承父类的实例方法进行。 (2)子类覆盖父类方法时,必须保持方法的签名不变,即:返回值类型、方法名、形式参数列表均不变。 (3)子类覆盖父类方法时,方法的访问修饰符范围必须大于等于父类中方法的访问修饰符。 例8-3:在类Cuboid1的基础上进行改进,重命名为Cuboid2。改进内容包括:增加构造方法和覆盖getArea方法。 8.1.4 关键字final final关键字在继承中可以起到如下作用: (1)使用final修饰类可以禁止类被继承。例如类MyClass不能被其它类继承。 public final class MyClass { …… } (2)使用final修饰方法可以禁止父类的方法被子类覆盖。例如方法aMethod可以被子类继承但不能被覆盖。 public final void aMethod() { …… } 8.1.5 对象类型转换与instanceof运算符 除基本数据类型可以进行类型转换外,Java语言也允许对象引用变量进行类型转换,转换规则如下: (1)自动类型转换 引用类型的自动类型转换也称为隐式类型转换或向上类型转换。在继承关系中,父类的引用变量可以直接引用其任一子类的对象。 (2)强制类型转换 引用类型的强制类型转换也称为显式类型转换或向下类型转换。在继承关系中,子类的引用变量可以通过强制类型转换引用父类对象;或接受父类引用变量的赋值。 8.1.5 对象类型转换与instanceof运算符 Java语言提供instanceof运算符来检查一个对象的类型。其语法格式如下: 对象引用变量 instanceof 类名 对象 instanceof 类名 在进行对象引用的强制类型转换之前,应该使用instanceof检查对象的
您可能关注的文档
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题3第1讲植物的激素调节.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题3第2讲动物生命活动的调节.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题3第3讲人体的稳态与免态.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题4第1讲生物的生殖和发育.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题4第2讲遗传的物质基础.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题4第3讲遗传的基因规律、伴性遗传及人类遗传病与优生.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题4第4讲细胞质遗传、基因结构与基因工程.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题4第5讲生物的变异与进化.ppt
- 生物2012高考生物专题复习及考前指导精品课件19份2012高考专题复习专题6实验、实习与研究性课题.ppt
- 生物2014秋季1认识生物和主要仪器.ppt
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业发展现状知识篇.docx
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业合作模式知识篇.docx
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业投资分析知识篇.docx
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业政策解读知识篇.docx
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业未来趋势知识篇.docx
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业案例分析知识篇.docx
- 原发性胆囊癌中CatB、CatD及CCL20的表达特征与临床意义探究.docx
- 基于宏观压力测试的我国商业银行信用风险的深度剖析与应对策略.docx
- 2025年中国水磨石球台市场调查研究报告.docx
- 杭州地铁5号线PPP融资模式:实践、挑战与优化策略.docx
文档评论(0)