网站大量收购闲置独家精品文档,联系QQ:2885784924

java程序设计5_Y.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java程序设计5_Y

Java语言程序设计 第四章 继承与多态 类的继承 子类继承父类的所有成员 若子类和父类在同一包中,父类的所有非私有域和方法在子类中的访问权限不变,私有域和方法在子类中不可访问 若子类和父类不在同一包中,父类的 public、protected域和方法在子类中的访问权限不变。父类的私有、友好域和方法在子类中不可访问 类的继承 注意的几点 若未指定基类,基类即Object java仅支持单继承 子类继承父类的全部成员,但并不是所有成员 在子类中都是可访问的 成员变量的隐藏 子类重新定义与从父类继承来的成员变量 名称完全相同(类型可以不同)的变量 在子类对象中,父类继承来的成员变量 (即使在子类中不可访问)被隐藏后仍占 用空间 方法的重写 子类中定义的方法与从父类继承来的方法 完全相同(名称、参数个数、参数类型、 返回类型) 子类对象不拥有从父类继承来的被重写的 方法的入口地址。 重写父类方法时不能降低方法的访问权 限,且父类方法访问权限不能为private 子类若要使用被隐藏的方法必须使用super 静态方法不支持运行时类型绑定,注意静 态方法的重写 Super关键字 若在子类中父类的成员变量被隐藏或方法 被重写时,可子类中可用super.域名访问父 类被隐藏的域或用super.成员名(实参列表) 被重写的方法。 被隐藏的成员变量也要分配内存,但该内存 单元不属于任何对象,必须用super访问 被隐藏的方法也要分配入口地址,但该入口 地址仅对super可见,必须由super调用 Super关键字 可在子类构造函数中用super (实参列表) 调用父类的构造函数,必须是子类构造函 数的第一个语句 若子类构造函数没有显式使用super调用父类 的某个构造函数,则默认有super( ),即调用 父类不带参数的构造函数 多态性 对象的上转型对象 Animal a=new Tiger( ); 上转型对象会失去原对象的一些特有的属性 和功能 上转型对象不能操作子类新增的成员变量和 方法 上转型对象可以操作子类继承或隐藏的成员 变量 上转型对象可以使用子类继承或重写的方 法,若子类重写了父类的某个方法,上转型 对象调用该方法一定是调用了子类的重写方 法。 可以将对象的上转型对象再强制转换为一个子类对象,此时该子类对象又具备了子类所有的属性和功能 Tiger t=(Tiger)a; 多态的实现 一个接口,多种实现 运行时多态的实现 通过继承中超类对象引用指向子类对象来实 现 通过抽象类对象引用指向子类对象来实现 通过接口类型变量引用实现接口的类的对象 来实现 参数多态的实现 通过重载实现 形参的个数、类型或顺序不同 多态可以让程序对扩展开放,对修改关闭,增强代码的可维护性 应对抽象基类的修改“关闭” 若再增加一个抽象方法,则所有子类都要作出修 改; 应对增加abstract的子类“开放” 在程序中再增加抽象基类的子类时,不需要修改 其他重要的类 动态绑定 将对方法的调用连系到调用其的对象称为 绑定 若绑定是在编译或连接时确定的称作前绑定;在运行时确定的称为后绑定或动态绑定。 除了static与final(private)方法,Java中所有的方法都采用后绑定 final(private)方法不能被重写;static方法可以被重写,但不会发生后绑定 构造函数与多态性 若在基类的构造函数中调用某个方法,而该方法又被子类重写,则 创建子类对象调用基类构造函数时,调用的 是类的继承层次中最后被重写的版本。 若子类中重写的方法用到了子类中定义的成 员变量,则注意构造器的执行过程: 装载程序加载主类 自下而上装载父类 自上而下执行static成员变量初始化 为子类对象分配空间并将成员清0 调用父类构造器进行初始化 执行子类构造器进行初始化 最好在构造函数中只调用final或private方法 接口 接口定义 [public] interface 接口名 [extends 父接口名表] { 常量声明; 方法声明; } 方法一定是public abstract,常量一定是 public static,但关键字可省略

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档