JAVA初级教程.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA语言 吕俊白 第5章 继承、接口与泛型 主要内容: 继承 成员变量的隐藏和方法的重写 继承与多态 最终类与最终方法final 抽象类abstract 接口 异常及其处理 内部类、匿名类和泛型类 5.1 继承关系的定义 继承是一种由已有的类创建新类的机制。 利用继承,我们可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。 由继承而得到的类称为子类,被继承的类称为父类(超类)。 利用继承有利于实现代码的重复使用,子类只需要添加新的功能代码即可。 Java不支持多重继承,即子类只能有一个父类。 在类的声明中,使用关键字extends来声明一个类是另外一个类的子类,格式如下: class 子类名 extends 父类名 { … … } 其中:父类可以是自己编写的类也可以是java类库中的类。 如果一个类的声明中没有使用关键字extends,这个类被系统默认为是Object类的子类,Object类是包java.lang中的类。 例如: class A { …… } 1.子类和父类在同一包中的继承性 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中非private的成员变量作为自己的成员变量,并且也自然地继承了父类中非private的方法作为自己的方法。继承的成员变量以及方法的访问权限保持不变。 2.子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中,那么,子类只能继承父类的protected、public成员变量和方法,继承的成员变量或方法的访问权限不变。但子类不能继承父类的友好变量和友好方法。 5.2 子类对象的构造过程 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,如果子类的构造方法没有指明调用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。 子类对象的创建: (1)将子类中声明的成员变量做为子类对象的成员变量。 (2)父类的成员变量也都分配了内存空间,但只将其中一部分(继承的那部分)做为子类对象的成员变量。 例如: 5.3 成员变量的隐藏和方法的重写 1.成员变量的隐藏 子类可以隐藏继承的成员变量。 当在子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。 class Example_5_3 { public static void main(String args[ ]) { B b=new B(); b.y=-50; b.g(); b.printy(); } } 2.方法重写 子类也可以隐藏已继承的方法,子类通过方法重写来隐藏继承的方法。 方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。 子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。 此时,如果子类想使用被隐藏的方法,必须使用关键字super。 例如: 注意: 方法重写时一定要保证方法的名字、类型、参数个数和类型同父类的方法完全相同。 重写父类的方法时,不可以降低方法的访问权限。 5.4 super 关键字 super关键字有两种用法: 子类使用super调用父类的构造方法, 子类使用super调用被子类隐藏的成员变量和方法。 1.使用super调用父类的构造方法 子类如果想使用父类的构造方法,必须在子类的构造方法中使用关键字super来表示,而且super必须是子类构造方法中的第一条语句。 如果在子类的构造方法中,没有使用关键字super调用父类的某个构造方法,那么,默认有super(); 即:调用父类的不带参数的构造方法。 2.使用super操作被隐藏的成员变量和方法 如果子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了从父类继承的成员变量。 当子类中定义了一个方法,并且这个方法的名字、返回类型、参数个数和类型和父类的某个方法完全相同时,子类从父类继承的这个方法将被隐藏。 如果在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super 。 例如: 5.5 final 类和final方法 final类不能被继承,即不能有子类。 如: final class A {      … } 将一个类定义为final类的好处:可以将它的内容、属性和功能固定下来,与它的类名形成稳定的映射关系。 将一个类声明为final类一般是出于安全性考虑。 一旦一个方法被修饰为final方法,则这个方法不能被重写,即:不允许子类通过重写

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档