- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5第五章继承与接口
Java基础教程(第2版) 第五章 第五章继承与接口 5.1子类和父类 5.2子类的继承性 5.3子类对象的构造过程 5.4成员变量的隐藏和方法的重写 5.5abstract类和abstract方法 5.6final关键字 5.7对象的上转型对象 5.8继承与多态 5.9super关键字 5.10接口 继承的表述 5.1 子类与父类 继承是一种由已有的类创建新类的机制 由继承得到的类称为子类,被继承的类称为父类(超类) 格式: class 子类名 extends 父类名 继承的特点: 一个子类只能继承于一个父类(单继承) Java中如果在定义类的时候没有申明父类,那么这个类的父类默认就是Object类 5.2 子类的继承性 5.2.1 子类和父类在同一个包中的继承性 如果在同一个包中,那么子类自然的继承了其父类中不是private的成员变量和方法作为自己的方法,访问权限不变。 5.2 子类的继承性 5.2.2子类和父类不在同一个包中的继承性 如果不在同一个包中,子类继承了父类的protected、public成员变量和方法作为自己的成员变量和方法。 protected只有在子类中被使用,不允许在main方法中用子类创建一个对象来调用父类的属性和方法,只能在子类中创建一个方法,用方法来调用父类的protected方法,然后再在main方法中调用子类的这个方法,才能把父类的protected方法调用出来。 子类不能继承父类的友好变量和友好方法。 5.2.3 protected的进一步说明 一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承 子类在自己的内部定义对象时可以通过”.”运算符访问继承的或自己的protected变量和protected方法.但是如果在别的类产生子类的对象有两种情况: 1.对于子类中声明的protected成员变量和方法,只要子类和这个类在同一个包就可以访问. 2.如果子类的protected成员变量和方法是从父类继承的那就要追溯到子类的父类,子类的父类要和使用子类对象的类同在一个包中. 5.3 子类对象的构造过程 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,如果子类的构造方法没有明显的指明使用父类的那个构造方法,子类就调用父类的不带参数的构造方法 5.4 成员变量的隐藏和方法的重写 子类可以隐藏继承来的成员变量,只要子类中声明定义的成员变量和父类中的成员变量同名,子类就隐藏了继承的成员变量. 子类通过方法重写隐藏继承的方法,只要方法的名字、返回类型、参数的个数和类型和从父类继承下来的方法完全相同。 5.5 abstract类和abstract方法 ?抽象类只是比普通类多了一个抽象方法 用关键字abstract修饰的类称为抽象类。如: abstract class A{ … }? abstract有两个特点: 1.abstract类中可以有abstract方法 :abstract class 类名称{} abstract方法是只允许声明不允许实现而且不能使用final和abstract同时修饰一个方法。抽象格式: abstract int min(int x, int y); 2.abstract类不能用new运算符创建对象 abstract类的作用主要是为子类提供一个合适的父类。其本身并不实现具体的功能。 强制子类覆盖抽象方法这样可以使所有的子类在方法声明上保持一致,在逻辑上也必须将方法的功能保持一致。例如游戏中设计类时,设计了怪物类以及相关的子类,每个怪物类都有移动方法,但是每种怪物的移动规则又不相同,这样通过使每个怪物类的移动方法的声明保持一致,方便调用。 abstract抽象类中可以有具体的方法,也可以通过子类继承来访问具体的功能,子类中必须完全有父类的抽象功能,一个都不能少。 5.6 final关键字 Final关键字可以修饰类、成员变量、方法和方法中的局部变量。 5.6 final关键字 5.6.1 final类 可以使用final将类声明为final类。final类不能被继承,即不能有子类。如: final class A{ … } 出于安全考虑,将一些类修饰为final类。例如,java提供的String类,它对编译器和解释器的正常运行有很重要的作用,它不能轻易改变,因此它被修饰为final类。 5.6 final关键字 5.6.2 final方法 如果用final修饰父类中的方法,那么这个方法不允许子类重写,子类不能隐藏继承的final方法 5.6.3 常量 如果成员变量或局部变量被修饰为final,则该成员变量或局部变量就是常量。常量在声明中没有默认值,所以在声明常量时必须指定该常量的值,而且不能再发生改变。 5.7
您可能关注的文档
- 论课堂提问的原则_类型_方法及评价_朱福文.pdf
- 青年志愿者协会活动目录.doc
- 0811_2_田径.doc
- (视频信号的基带传输方式)智能楼宇对讲系统的常见传输方法.doc
- 自流平弹性涂地板项目商业计划书(2013年融资成功案例范文)-协助企业融资-投资专家免费咨询.pdf
- C_语言计算机实践_交通类0801.doc
- 《操作系统概论》第四章.doc
- 一年级第一学期古诗记诵目录(共20首).doc
- 中国社会保障制度改革漫谈.ppt
- 南昌事业单位2012年招聘.doc
- 【上交所-2025研报】西藏旅游2025年半年度报告.pdf
- 【港交所-2025研报】安井食品 2025中期报告.pdf
- 【港交所-2025研报】德基科技控股 中期报告2025.pdf
- 【KPMG China-2025研报】中国对外绿地投资:从“走出去”到“走进去”,深入本土化运营.pdf
- 【上交所-2025研报】海航科技股份有限公司2025年半年度报告.pdf
- 【上交所-2025研报】宁波精达2025年半年度报告.pdf
- 【港交所-2025研报】乐舱物流 2025年中期报告.pdf
- 【港交所-2025研报】绿色动力环保 2025 中期报告.pdf
- 【上交所-2025研报】成都立航科技股份有限公司2025年半年度报告.pdf
- 【上交所-2025研报】科力远2025年半年度报告.pdf
文档评论(0)