Java语言程序设计 第2版 赵国玲 ch4新.ppt

Java语言程序设计 第2版 赵国玲 ch4新.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要内容 4.1 类的继承 4.2 抽象类与抽象方法 4.3 接口的定义及实现 4.4 包的应用 4.5 内部类 4.6 应用实例 学习目标 理解类的继承性概念 理解父类与子类的关系 掌握由已存在的类创建新类的方法 熟悉Object类的使用 理解抽象类、终结类的含意及使用 熟悉Java包及接口的应用 4.1 类的继承 一、继承概念 继承是一种由已有的类创建新类的机制,是面向对象程序设计中最为关键的概念。类的继承也称为类的派生,一个新类可以从另一个已存在的类中派生,这个过程称为类的继承。派生出的新类称为已有类的子类(Subclass)或派生类(Derivedclass),已有类称为基类(Baseclass)、父类(Parentclass)或超类(Superclass)。 4.1 类的继承 【例4-1】类继承程序示例。 class Vehicle {public void start() { system.out.println(“Starting...”); } } class Car extends Vehicle { public void drive() { system.out.println(“Driveing...”); } } public class App { public static void main(string[],args) { system.out.println(“Createing a car...”); Car c=new Car(); c.start(); c.drive(); } } 4.1 类的继承 二、继承的实现 Java中的继承是通过在类声明中加入extends关键字来实现的。其一般格式如下: [类修饰符] class 子类名 extends 父类名 { //子类类体 } 例如: class Car extends Vehicle 4.1 类的继承 说明,子类继承父类应遵循以下规则: (1)子类可以继承父类中所有(除private访问权限以外)的成员变量和成员方法。 (2)子类不能继承父类的构造方法,因为父类构造方法创建的是父类对象,子类必须声明自己的构造方法,用于创建子类自己的对象。但在子类构造方法中可以(显式或隐式地)调用父类的构造方法。 (3)子类可以声明自己的成员变量和成员方法。如果子类声明了与父类同名的成员,则不能继承父类的成员,此时子类成员隐藏或覆盖了父类的成员。 (4)子类不能删除父类成员。 (5)子类对象对父类对象的访问权限遵循表3-1中的访问权限规定。 (6)extends关键字后即为父类的名字。其实这个父类也可以是另一个类的子类,那么新定义的这个子类也是另一个类(其父类的父类)的子类(也称作间接子类)。 4.1 类的继承 【例4-2】子类的创建与实现示例1。 【例4-3】子类的创建与实现示例2 4.1 类的继承 三、 隐藏与覆盖 子类不仅可以继承父类的所有非私有成员,还可以对继承类的属性变量及方法进行重新定义,分别称为属性隐藏和方法覆盖。 4.1 类的继承 1.成员变量的隐藏 若子类声明了与父类同名的成员变量,则父类中同名的成员变量将被隐藏起来。当在子类对象中直接通过成员变量名访问成员变量时,访问到的是子类的同名变量,如果需要访问同名的父类成员变量,必须通过父类名或super关键字来访问。 4.1 类的继承 2.方法覆盖 如果子类不需要使用从父类继承来的方法的功能,则可以声明自己的方法。在声明的时候,使用与父类相同的方法名及参数,这种情况称为方法覆盖(或重写)。 当调用一个对象的方法时,Java总是先在该对象所属的类中寻找该方法的定义,如果找不到,就到该类的上一级别的类中去寻找,直到找到了该方法的定义。如果需要调用父类中被覆盖的方法,则使用关键字super。 方法覆盖中需要注意的问题是,子类重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值和参数列表。 4.1 类的继承 3.类的多态及实现 Java面向对象程序设计中实现多态技术的两种重要手段是方法重载和方法覆盖,我们已经分别介绍,实际编程中要注意两者的区别。方法覆盖是对从父类所继承的方法进行重写,而且要示要保持与父类同名方法完全相同的方法声明部分(即应与父类有完全相同的方法名、返回值和参数列表);重载不是子类对父类同名方法的重新定义,而是类对自身已有的同名方法的重写,且要求与被重载的方法必须有不同的参数列表。 4.1 类的继承 四、继承与构造方法 当一个类被实例化的时候,它的构造方法自动被调用。当一个子类被实例

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档