java-第五章节.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 类的继承性 类的继承性 类的继承性:超类和子类 关键字:super 方法覆盖(overriding) Object 类 修饰符 protected,final 和 abstract 多态性和对象转换 接口 内部类 程序开发过程和类的设计原则 类的继承性 通过继承可以简化类的定义 Java只支持单继承,不允许多重继承 可以有多层继承,即一个类可以继承某一个类的子类,如:类B继承了类A,类C又继承了类B,那么类C也间接的继承了类A 超类和子类 创建子类 从超类扩展属性和方法来创建子类,你可以: 增加新的属性 增加新的方法 对超类中的属性和方法进行覆盖 示例:测试继承性 这个例子中创建一个 Cylinder 类, 并且研究 Cylinder类 和 Circle 类之间的关系 关键字 super 关键字super是在引用超类中的子类中出现的 super关键字可以用于两种用途 调用超类的方法 调用超类的构造方法 关键字 super (续) 子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法 在子类的构造方法中可以使用语句super(参数列表)调用父类的构造方法 如果子类的构造方法中没有显式地调用父类的构造方法,也没有使用this关键字调用重载的其它构造方法,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法 覆盖父类中的方法 Cylinder 类覆盖在 Circle 类中定义的findArea()方法 覆盖方法时不能使用比超类中被覆盖方法更严格的访问权限 Object 类 Java类中每个类都直接或间接继承自Object类 每个Java类中都拥有Object类的方法 toString()方法将返回代表这个对象值的一个字符串 equals()方法比较两个对象的内容是否相等 clone()方法复制对象 …… protected 修饰符 protected修饰符应用于类的数据和方法上 公用类中保护的数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以访问 protected 修饰符(续) final 修饰符 带有final 修饰符的类不能被继承 final class Math {...} 带有final修饰符的变量是一个常量 final static double PI = 3.14159; 用final修饰的方法不能被它的子类修改 抽象类 Java中可以定义不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况去实现,这样的方法就是抽象方法,包含抽象方法的类叫抽象类 abstract 修饰符 抽象方法必须用abstract来修饰;抽象类也必须用abstract关键字来修饰 抽象方法 只有方法的声明,不需要实现(没有方法体) 含有抽象方法的类必须被声明为抽象类 抽象类 抽象类不能被实例化,即不能用new关键字去产生一个类的对象 抽象类的子类如果是一个非抽象类,那么该子类必须覆盖父类中所有的抽象方法,否则这个子类还是抽象类 抽象类的应用 多态性和动态绑定 多态性(polymorphism)即“多种形式” 多态性是实现软件可重用性的手段之一。它使得继承特性更为灵活,并使程序具有良好的可扩展性 静态多态性 静态多态性在编译时就可以被系统识别,是指同名方法在功能上的重载 动态多态性(动态绑定) 动态多态性指的是子类方法对父类方法的覆盖,程序在运行时决定调用哪个方法的能力 示例: 测试多态性 在这个例子中创建两个几何对象,一个圆和一个矩形,调用equalArea方法来检验两个对象的面积是否相等,并调用displayGeometricObject方法显示对象 对象转换 子类的实例转换为它的父类的实例是可能的。这是因为,明确的显示转换可以省略 例如: Circle myCircle = myCylinder 等价于 Circle myCircle = (Circle)myCylinder; 父类转换子类 在父类向子类的转换时可能会用到明确的显示转换。但是这种转换并不总是成功的 Cylinder myCylinder = (Cylinder)myCircle; A aa=new A(); B bb=(B)aa; instanceof 运算符 使用 instanceof 操作符来测试一个对象是否是一个类的实例: Circle myCircle = new Circle(); if (myCircle instanceof Cylinder) { Cylinder myCylinder = (Cylinder)myCircle; ... } 示例:转换对象 这个例子创建了两个几何几何,一个圆和一个圆柱,调用displayGeometricObject

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档