类继承.doc

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

类之间的关系 “USES-A”关系 类A用到了类B,即类A操纵类B的成员 “HAS-A”关系 类A拥有类B,即类A中有类B类型的成员引用变量 “IS-A”关系 类A是一种类B,即类A是类B子类的一种(基于继承) 类的继承(extends) Java中,实际上所有的类均直接或间接继承自java.lang.Object类,也可以说Object类是Java中的总根类。 语法:class 子类名 extends 父类名 {子类类体} 成员变量的继承和隐藏 成员变量是的继承规则 公有成员 对于子类,如果其父类的成员声明为public类型,那么无论这两个类是否在同一个包中,子类均能继承其父类的该成员。 私有成员 当成员变量声明为private类型时,任何子类不能继承该成员。 默认(不写)成员 当成员变量声明为默认类型时,包外的子类不能继承该成员变量,而在包内则相当于public,任何子类都可以继承该成员变量。 受保护的成员 当成员变量被修饰为protected类型时,若访问该变量的类位于包外,只有通过继承才能访问该变量。 成员变量的隐藏 对于成员变量来说,当子类本身具有与继承自父类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。含义是指,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是从父类继承的成员变量。在子类中使用super关键字就可以访问该变量。 提示:1、super与this一样,也是一个预定义对象引用,只不过this 表示自己这个对象,而super表示父类对象; 2、super只能在子类中使用,用来访问父类的成员。 对象引用的使用 对象引用能指向的对象类型 指向自身类型的对象实例 指向由父类派生出的直接或间接子类的对象。也就是说,只要类B派生自类A(类B可以不是类A的直接子类),类A的引用变量便可以指向类B的对象。 对象引用的强制类型转换 在运行时,对于成员变量的访问系统认的是引用类型,引用是什么类型的,系统就访问谁的成员。若要访问子类对象的成员,则需要将指向对象的父类引用转换为子类类型。 对象引所能调用的成员 规则:引用只能调用其所在的类具有的成员,不能调用子类特有的成员。 对象引用的赋值与比较 引用的相互赋值 引用赋值时可以直接将子类引用赋给父类引用,若需将父类引用赋给子类引用则必须进行强制类型转换。 引用的比较 相同类型的引用可以进行比较 不同类型的引用要进行比较,其中一个的类型必须派生自另一个,否则编译报错。 方法的继承和重写 方法的继承规则 与成员变量大的继承规则一样 方法重写 重写(覆盖):子类其自身的方法中,若与继承过来的方法具有相同的签名,便构成了方法重写。 当子类引用指向自身对象时,如果子类重写了父类方法,则调用子类重写的方法,否则将调用从父类继承的方法。 当父类引用指向子类对象,若访问被重写的方法,则将访问被重新定义的子类中的方法。 构成重写遵循的规则: 返回类型若为基本数据类型,则返回类型必须完全相同;若为对象引用类型,必须与被重写方法返回类型相同,或派生自被重写方法的返回类型; 访问级别的限制一定不能比被重写方法的窄,可以比被重写方法的宽; 不能重写被表示为final的方法。 提示:方法的调用按对象的类型,无论使用什么类型的引用,其调用的都是具体对象所在类中定义的方法。这与成员变量不同,成员变量按引用的类型。 构成重写的条件 在Java中,方法名与其参数列表共同构成了方法的唯一标识。而方法若想要构成重写,首先方法的唯一标识必须与被重写的方法完全相同。如果只是方法名称相同,而参数不同,不是重写,而是继承以后的方法与新写的方法构成重载。 返回类型的规则 返回类型若为基本数据类型,则返回类型必须完全相同; 若为对象引用类型,必须与被重写方法返回类型相同,或派生自被重写方法 的返回类型; 访问级别的要求 访问级别的限制一定不能比被重写方法的窄,可以比被重写方法的宽; 重写基于继承 继承是重写的基础,没有继承就没有重写。 静态方法没有重写 非静态方法不能重写静态方法 静态方法的隐藏 当子类重写的方法也是静态的时候,其实质是将父类的静态方法隐藏,而并非是将其重写。 注:隐藏是根据引用的类型来进行调用,重写是根据对象的类型来进行调用的。 通过重写扩展父类方法的功能 使用super关键字 替代性原理 在任何情况下,子类应该可以代替父类 方法的重载 方法的重载是指在同一个类里面,有两个或两个以上具有相同名称,不同参数序列的方法。 方法重载的规则 重载的方法参数列表各不相同; 重载方法的返回值类型、访问限制没有特别要求,可以相同也可以不同。 重载的方法匹配 基本类型参数 在方法调用进行匹配时,首先选择直接匹配的方法,如果没有,则将参数进行提升转换后再匹配方法,总是匹配最接近的方法

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档