java 讲义.ppt_第1页
java 讲义.ppt_第2页
java 讲义.ppt_第3页
java 讲义.ppt_第4页
java 讲义.ppt_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java讲义面向对象 下 类的继承 什么是继承在程序中 可以使用extends关键字可以让一个类继承另外一个类继承的类为子类 被继承的类为父类子类会自动继承父类所有的方法和属性为什么要使用继承当我们发现一个类的功能不行 方法不够用时 就可以派生子类 增加方法当我们需要定义一个能实现某项特殊功能的类时 就可以使用继承最终还是为了一个目的 实现代码的复用性继承的特点Java只支持单继承 不支持多继承 但是可以多重继承在子类中可以使用super关键字来引用父类对象 子类和父类之间的类型转换 向上转型把一个子类当做父类来用是可以的 因为父类有的子类都有把一个父类当做子类来用就不可以了 因为子类有的父类不一定有可以定义一个父类类型的变量来记住子类对象 不需要强制类型转换 这在程序中称之为向上转型强制类型转换把一个子类当做父类来用的时候 父类类型的变量中存放的地址是指向一个子类的实例对象的 所以理论上是可以调用子类中定义的任何方法的实验证明 如果用一个父类类型的变量是指向子类对象时 用该变量去调用子类中自定义的方法时 编译器会报错 原因就在于 Java编译器会检查语法 看到父类类型的变量调用方法时 就会检查父类中是否定义了这样的方法这种情况下 就需要强制类型转换 将父类类型强转成子类类型 前提是父类变量指向的子类对象 可以使用instanceof进行判断 将子类当做父类来用 什么情况下将子类当做父类来用当我们在调用某个类的一个方法时 此方法声明需要一个父类对象 这时 我们就可以将一个子类对象作为实参传递过去 注意此时方法定义的形参为父类 在方法中使用父类变量调用方法时 其实是调用子类的方法 思考 上述情形下 在方法中用父类变量访问属性访问的是子类还是父类的属性匿名内部类由于需要给方法传递一个对象 该对象只使用一次 所以可以用匿名对象由于子类被定义后只使用一次 所以可以使用内部类由于方法需要一个父类 我们就可以new一个父类对象 在类名后跟一对花括号 就表示匿名内部类 这时new的就不再是父类对象 而是一个子类对象 这个子类没有类名 所以我们称之为匿名内部类 匿名内部类做了两件事情 定义子类和创建对象 类的继承应用细节 子类不继承父类的私有成员父类中定义的私有成员对外是不可见的 子类也不知道父类中的这些成员 所以不会继承 构造函数不会被继承由于子类会有比父类更多的属性 父类在定义时被不知道将来子类将被如何实例化 或者说父类根本无法帮子类完成初始化的工作 所以构造函数不会被继承 为什么只支持单继承如果Java支持多继承 也就是一个类可能会有两个父类 然而这两个父类中可以会定义两个相同的方法 这时子类将不知道该继承哪个 两个方法会有冲突 子类对象的实例化过程 如果在子类的构造方法中没有显式地声明去调用父类哪个构造方法或者自己其他的构造方法 系统会自动去调一下父类无参的构造方法 在子类中第一行用this关键字去调其他的构造方法 这时系统将不再自动调父类的 在构造方法中this和super关键字只能出现一次 而且必须是第一行 以后在设计类的时候 一定要定义一个无参的构造方法 不然子类实例化的时候就会出错 为什么有这样的机制我们在设计一个类的时候 需要该类的对象都具有某一项特殊的功能 就需要在构造方法里做一些特殊的事情 别人来继承我们这个类 一定也希望子类对象也具备这样的功能 但是别人并不知道在构造方法中需要做一些特殊的事情才能实现这样的功能 所以java就规定子类实例化过程中 一定会去调用父类的其中一个构造方法 这样就能保证子类对象具有和父类对象相同的特殊功能 子类对象的实例化过程 覆盖父类的方法 覆盖方法必须和被覆盖方法具有相同的方法名称 参数列表和返回值类型 如果在子类中想调用父类中的那个被覆盖的方法 我们可以用super 方法的格式 覆盖方法时 不能使用比父类中被覆盖的方法更严格的访问权限 final关键字 在Java中声明类 属性和方法时 可使用关键字final来修饰 final标记的类不能被继承 final标记的方法不能被子类重写 final标记的变量 成员变量或局部变量 即成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论