- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVa42继承多态访问控制
Java类设计 本节内容 类的继承 (1) 类的继承 (2) 类的继承 (3) extends 关键字 类的继承 (4) 单继承举例 域的继承与隐藏、添加 域的继承:子类可以继承父类的所有域(只要该域没有private或static修饰) 域的隐藏:子类重新定义一个与父类那里继承来的域变量完全相同的变量,称为域的隐藏 域的添加:定义子类时加上新的域变量 访问控制符(P65) 类的访问控制符 类的访问控制符或者为public,或者默认 public class 类名{ …… } 如果类用public修饰,则该类可以被其他类所访问 如果类默认访问控制符,则该类只能被同包中的类访问 成员访问控制举例(1) 成员访问控制举例(2) Ex1( 课后练习) 改造上述应用程序后,分析其结果,体会Java访问控制机制,可分下述几种情形: 应用程序入口main()方法定义在一个非子类中 Parent和Child类位于不同包中,main()在子类中 Parent和Child类位于不同包中, main()方法定义在不同包内的非子类中 方法的重写(覆盖) 在子类中可以根据需要对从父类中继承来的方法进行改造----方法的重写 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型 重写方法不能使用比被重写方法更严格的访问权限 方法重写举例(1) 方法重写举例(2) 子类当中的构造方法 子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法 使用super关键字 关键字super 在Java类中使用super来引用父类的成员 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造方法 关键字super举例 调用父类构造方法举例 (1) 调用父类构造方法举例 (2) 调用本类或者父类构造方法 使用this来调用本类的构造方法 使用super(argument_list)语句调用父类的构造方法 如果子类的构造方法中没有使用super显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法,相当于super() 如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错 super()必须在构造方法的第一行 对象构造和初始化细节 分配子类的存储空间并进行默认的变量初始化 按下述步骤初始化实例变量 绑定构造方法参数如有this()语句,则调用相应的重载构造方法, super()显式调用父类的构造方法 既无super也无this,隐式调用super() 进行实例变量的显式初始化操作 执行当前构造方法的方法体 构造和初始化对象举例 父类和子类的构造机理* 在内存机制中,父类和子类是占用同一块内存的,只不过子类在父类的基础上增加了自己的部分(属性)。子类是依附于父类的,先有父类再有子类。 一个子类对象的产生,必须先调用父类的构造方法产生一个父类实例,然后在这个实例基础上添加自己的部分。 子类改写了父类的方法,看似父类和子类各自有一个方法,其实它们在内存模型里占用的是同一块内存,子类方法会覆盖父类方法。 举例:StringTest.java Father01.java 父类对象与子类对象的转换 转换规则: 子类对象可以被视为其父类的一个对象 父类对象不能被当作其某个子类的对象 如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数 如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以用强制类型转换成子类对象的引用 // student.java: class Person{ //父类 ... } class Student extends Person { //子类 ... public static void main (String args[]){ Person p1 = new Person (Liming,50); Student s1 = new Student (Wangqiang,20,PKU); Person p2 = new Student (Zhangyi,18,dlut); Student s2 = (Student) p2; } } 多态性 实验 覆盖方法可以比父类访问控制权限更大 参数不同,不为覆盖方法。 返回类型不同,编译出错。 final 方法不能覆盖,编译出错 static 不为覆盖为各自的类方法。 private 不存在覆盖问题,因为子类见不到父类的私有方法。父类为public 子类为private 可以吗? 域覆盖如
您可能关注的文档
- Elecsys检测HBV血清学指标在疾病诊断和管理中的应用.ppt
- EDA技术P10宏模块和IP使用方法新.ppt
- ELISA和ELISPOT检测技术.ppt
- ELISA双抗夹心法检测抗原20110720123752.ppt
- D第1章第2节孟德尔的豌豆杂交实验二.ppt
- EN7132013元素的迁移.docx
- EMCVPLEX容灾系统实施方案.docx
- ESSBASE11G安装、配置、诊断、cube迁移文档.doc
- Elsevier爱思唯尔外文数据库指南.ppt
- excel在财务管理中的应用财务实习.ppt
- 传统食品产业升级:2025年技术改造与智能化生产深度报告.docx
- 人工智能辅助手术操作研究.pptx
- 介入治疗室技术操作规范总结.pptx
- 2025年房地产市场成交数据归因分析报告:房地产市场区域市场发展分析.docx
- 2025年房地产市场成交数据归因分析报告:房地产市场信用体系建设研究.docx
- 2025年房地产市场成交数据归因分析报告:房地产市场区域市场竞争力评估.docx
- 传统食品产业升级攻略:2025年工业化生产技术改造与产业生态构建策略报告.docx
- 传统食品产业升级攻略:2025年工业化生产技术改造与市场拓展报告.docx
- 传统食品产业升级攻略:2025年工业化生产技术改造与产业布局优化报告.docx
- 人工智能辅助手术技术发展.pptx
文档评论(0)