- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章面向对象高级特性
第5章 面向对象高级特性 5.1 变量多态 5.2 非访问控制符 5.3 接口 5.4访问控制符 5.5内部类 5.1 变量多态 5.1.1定义 类型为X的参考变量,其指向的对象类型既可以是X,也可以是X的子类。 例如: Student s1,s2; s1=new Student(651003,王五); s2=new Collegian(0810123,张三,计算机); 主意:s2就是变量多态。 例5-1 动态绑定:编译器通过检查变量的类型来确定相关方法能否被调用;而运行时,具体访问的哪个方法被调用由变量指向的对象类型来确定。 5.1 变量多态 改进后的例5-1 5.1.2用途 (1)用于异类收集 基于变量多态,可以把具有继承关系的对象集合到同一个数组中 。例如: Student s[]; s=new Student[2]; s[0]=new Student(651003,王五); s[1]=new Collegian(0810123,张三,计算机); 5.1 变量多态 (2)用于方法参数传递 实参是形参的子类对象。 例如:在Stack类中的public int search(Object o) 5.1.3类型判断 其格式为: 对象 instanceof 类 该运算符的作用就是判断左边的对象是不是右边的类型,如果是结果为true,否则为false。 5.1 变量多态 5.1.4参考类型转换总结 即子类向父类的转换可以自动进行,而父类向子类的转换则需要指明,且看是否能转换。 1.正确的转换1-子类变量给父类变量赋值 例5-3 2.错误的转换1-父类变量给子类变量赋值 例5-4 5.1 变量多态 3.错误的转换2-指向父类对象的父类变量强制转换为子类类型 例5-5 4.错误的转换2-指向子类对象的父类变量给子类变量赋值 例5-6 5.正确的转换2-能正确强制类型转换为子类类型的变量给子类变量赋值 例5-7 5.2非访问控制符 5.2.1 static static可以修饰变量、方法。 1.类变量(静态变量) 类变量和实例变量的区别: 类变量可以通过类名访问 ;实例变量通过对象名进行访问 5.2非访问控制符 类变量和成实例变量的内存分布 5.2非访问控制符 2.类方法(静态方法) 类方法也不需要创建对象,直接通过类名访问 。 (1)类方法只能直接访问类变量或方法参数,不能直接访问实例变量。但在非静态的方法中,可以直接访问本类中的静态变量和非静态变量。 例5-9 (2)静态方法不能直接访问非静态方法。 例5-10 5.2非访问控制符 3.类变量的作用 例5-11 5.2.2final final可以修饰类、方法和变量 1.修饰类 final修饰的类为最终类,不能被继承。 例5-12 5.2非访问控制符 2.修饰方法 final修饰的方法是最终方法,不能被覆盖。 例5-13 3.修饰变量 final修饰的“变量”是字符常量,代表常量,在一次赋值后其值不能改变。 例5-14 5.2非访问控制符 5.2.3 abstract abstract可以修饰类和方法。 1.修饰类 abstract修饰的类是抽象类,即类中有些内容(方法)还没有定义完整。 不能创建抽象类的对象,抽象类一般是用来做父类的,即它可以被其它类继承。 abstract与final “相克”,它们不能修饰同一个类。 例5-15 5.2非访问控制符 2.修饰方法 abstract修饰的方法是抽象方法,也就是只定义了方法头部,没有方法体。 例如: abstract void tt(); 3. 修饰类和修饰方法的关系 (1)抽象类不一定含有抽象方法,但含有抽象方法的类一定是抽象类。 例:改进后的5-15 5.2非访问控制符 (2)如果子类没有实现抽象类中所有的抽象方法,那么子类要定义为抽象类。 例 4.抽象类的作用 抽象类的作用就是做父类 。 例5-16 :作为一个公司可能有很多种交通工具,编程计算每天所有交通工具的耗油总量。 5.3接口 5.3.1说明 Java通过接口来弥补它单重继承的不足,接口之间是多重继承,即一个接口可以有多个父接口,而且一个类可以实现多个接口。 5.3.2接口定义 接口定义的格式: interface 接口名{ 接口体 } 5.3接口 接口中的方法不给出方法体,是抽象方法,即都是public、abstract的方法; 接口中只允许定义常量,不允许定义变量,接口中的成员变量都是public、static、final型的; 方法的修饰符及变量的修饰符都是可以省略的。 例5-17 5.3接口 5.3.3实现 实现接口的格式: class 类名 implements 接口名列
您可能关注的文档
- 2010-02号质量保证体系-电气.doc
- 广州妇科常识女人太苗条容易得10种病.ppt
- 广州大学2012年法学专业招收本科插班生《法理学》考试大纲.doc
- 2010全国税务人员执法资格统一考试及答案(一).doc
- 方正培训方案.doc
- 广州小升初复习计划-英语.doc
- 广州展文字201522-.doc
- 2009年广东省普通高中学业水平考试生物试题及参考答案(高考直通车).doc
- 方程教学的心得.doc
- 2010-2014年一建《法规》历年真题(完整版-史上最全)pdf.doc
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
文档评论(0)