- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章概述-合肥学院.ppt
第六章 Java语言的继承与多态 合肥学院计算机系 吴晓琴 本章内容 6.1继承 6.2 多态性 6.3 构造函数的继承与重载 6.4 Java中的接口 6.5 Java中的包 6.1继承 1. 继承与派生 ① 继承:在已有类的基础上快速构造出新类的过程;派生:在构造新类的同时并新增新的特性的过程。 ② 基(父)类:被继承特性的类;派生(子)类:在基类的基础上新创建出的类。 Point--Rectangle--Window--Dialog ③ 为什么要继承派生:实体之间不仅在横向具有关联特性,而具在纵向也存在继承与派生的特性(遗传与变异);充分利用此特性可快速地构造出新类。 ④ 可行性:实体之间具有自然的相互关联性。 ⑤ 目的:对现有系统重用,而且还能扩充和完善现有系统。 ⑥ 派生类的定义 类的种类 class 派生类名 extends 基类名 { 成员定义; } 2.属性的继承与隐蔽 属性的继承 派生(子)类继承基(父)类非私有属性 Ko6.1 属性的隐蔽 派生(子)类重新定义与从基(父)类那里继承来的属性名(变量名)完全相同的变量,也就是说子类拥有两个变量名完全相同的变量。 子类执行从基(父)类那里继承的操作时,处理的是继承父类的变量, 子类执行自己定义的操作时,处理的是自己定义的变量 ko64 , hid 3.方法(函数)的继承与覆盖 方法的继承 派生(子)类继承基(父)类非私有方法 ko641 方法的覆 盖 派生(子)类重新定义与从基(父)类那里继承来的方法名完全相同的方法 与属性的隐蔽不同之处:父类的同名变量在子类对象中仍占有空间,而子类同名方法对父类的同名方法覆盖,将清除父类的同名方法占有空间,父类的同名方法在子类对象中不存在。 Ko6_5 4.方法的重载 重载函数:类体中“同名”而“不同形参”的成员函数。 ①作用:实现同种功能而不同的功能实现形式(OOP中的静态多态性)。 ② 调用规则:系统将根据实参与形参的个数或类型相匹配的关系来决定所调用的函数名。 ③ 应用要点:重载函数只是以函数的形参的不同来判断的而不是以函数的返回值或函数形参名的不同来区分的。 如下函数不是重载函数定义 ! int add(int x,int y) int add(int a,int b) void add(int x,int y) int add(int x,int y) 注意: 1继承与派生时的方法重写权限要求:重写的方法的访问权限不能有比基类更严格的访问权限和定义出更多的例外。 2对象的类型识别:利用instanceof可以识别出对象所属的类型,从而依据不同类型的对象产生不同的行为。 5.类体中的this、super this:它代表当前名,一个类可以通过this变量来获得一个代表它自身的对象变量。 用途: 1this(参数)调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句); 2在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名 class Point class Circle extends Point { { private int x,y; private int radius; public Point(int x,int y) public circle(int x0,int y0, int r ) { { this.x=x; super(x0,y0); this.y=y; radius=r; } } public void Draw() public void Draw() { { super.Draw(); drawCircle(); } } public Point() { this(0,0); } } Super java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。Super 的使用有三种情况: 1)访问父类被隐藏的成员变量,如: super. 变量; 2)调用父类中被重写的方法,如: super.成员函数据名(实参) 3)调用父类的构造函数,如: super(参数1,参数2…) 调用基类中的某一
原创力文档


文档评论(0)