版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类的继承1 继承的基本概念继承性一面向对象的核心特征之一,继承是由已有类创建新类的机制。x类的继承机制是面向对象程序设计中实现软件可重用行的最重要 手段x被继承的已有类称为父类或超类,所定义的新类称为子类或派生类x子类中可以定义新的成员变量和成员方法,也可以对父类中的成员 变量和成员方法进行更改,使类的功能得以扩充。4在ja/a中,一个类只能继承一个超类,称为单继承;一个超类可以派生 出多个子类。i继承增加了软件的可扩充性,提高了软件的可维护性丄通常将通用性的成员设计在祖先类,而将特殊性的成员设计在后代类中。2 继承的实现1定义子类形式如下:修饰符class类名extends父类名成员变量声明
2、部分成员方法声明部分修饰符说明类的访问权限(public是否是抽象类(abstract)或 最终类(final)类名表示通过继承定义的新类 一个类智能继承一个父类称为单继承2继承原则x子类继承父类的成员变量(实例成员变量和类成员变量)x子类继承父类的成员方法(除构造方法外)x 子类不能继承父类的构造方法,因为父类的构造方法用来创建父 类对象,子类需定义自己的构造方法,用来创建自己的构造方法x子类可以重新定义父类成员3父类成员的访问权限x 子类对父类的private成员没有访问权限,但可以通过父类的非 private成员方法是用父类的成员变量。x 子类对父类的public和protected成员
3、具有访问权限。x 子类对父类的缺省权限成员访问权限已包围界限分两种情况:通 报可以访问,异包拒绝访问。类中成员的访问权限体现了类封装的信息隐藏原则,如果类中成 员仅限于该类的使用,则声明为private;如果类中成员允许子类 使用,则声明为protected ;如果类中成员允许所有类使用,则声 明为public3. super 和 this 引用super:指明是引用父类中的成员this:指明是引用子类中的成员1super丄引用父类成员变量子类自动继承父类所有的成员变量super 成员变量名当子类中没有声明与父类同名的成员变量时,引用父类的成 员变量可以不使用super,但当子类中声明了与父类
4、中同名 的成员变量时,为了引用父类的成员变量,必须使用super, 否则引用的是子类中的同名成员变量。丄调用父类成员方法子类自动继承父类所有的成员方法super 成员方法名(参数表)当子类中没有声明与父类同名且同参数表的成员方法时,调 用父类的成员方法可以不使用super;但当子类中声明了与 父类中同名且同参数表的成员方法时,为了调用父类的成员 方法,必须使用super,否则调用的是子类中的同名且同参 数的成员方法。丄调用父类的构造方法在子类的构造方法中,可以通过super调用父类的构造方法super(参数表)此处的参数表由父类构造方法的参数表决定,并且super(参 数表)必须是子类构造方法
5、体中的首条语句。2this可以使用this引用当前成员对象的成员变量、成员方法和构造方法丄访问成员变量this 成员变量名当成员方法中没有与成员变量同名的参数时,this可以省略,但当成员方法中存在与成员变量同名的参数时,引用成员变量时其名前的this不能省略,因为成员方法中缺省的是引用方法中的参数。丄调用成员方法this 成员方法名(参数表)其中,成员方法名前的this可以省略£调用构造方法this(参数表)在构造方法中,可以通过this调用本类中具有不同参数表的构造方 法。类的多态性多态性:指同一名字的方法可以有多种实现,即不同的方法体。类的多态性提供了方法设计的灵活性和执行的多
6、样性。多态性通过方法的重载(overload)和覆盖(override)来实现。1. 方法重载在一个类,多个方法具有相同的方法名,但却具有不同的参数表,称为方 法的重载。重载表现为同一个类的多态性。2. 重载方法中的参数表必然不同,表现为参数个数不同、参数类型不同或参 数顺序不同。丄 通过方法重载,采用统一的方法可以执行不同的方法名。丄 类的构造方法也可以重载,在实例化对象时,根据给出的参数表调用 相应的构造方法。4方法重载也可以出现子啊父类与子类之间,即子类中可以声明与父类 中具有相同方法名,但具有不同参数表的成员方法。3. 方法覆盖覆盖是指子类重定义了父类中的同名方法。覆盖表现为父类与子类
7、中之间 方法的多态性。如果父类中的方法体不适合子类,子类中可以重新定义之。 子类中定义的方法与父类中的方法具有相同的方法名和参数表,但具有不 同的方法体。父类和子类具有同名方法,称子类方法覆盖了父类方法。寻找执行方法的原则是:首先从对象所属类开始,寻找匹配的方法;如果 当前类中没有匹配的方法,则依次在父类、祖先类寻找匹配方法。方法的多态性使类及其子类具有统一的风格,通过重载使一个类中具有相 同含义的多个方法共用一个方法名,通过覆盖使父类和子类中具有相同含 义的多个方法共用一个方法名。类的继承性和多态性是类功能易于扩充,并增强了软件的可维护性。4. final类和final成员用final修饰的类不能被继承,用final修饰的成员不能被覆盖,用final修饰 的成员变量不能被修改。吐final类:出于安全性考虑,有些类不允许被继承,称为final类。 具有固定作用,用来完成某种标准功能的类。例如,系统类string、 byte和double就被称为final类。类的定义已经很完美,不需要再生成其子类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论