当前位置:文档之家› Java第五章--继承与多态PPT教学课件

Java第五章--继承与多态PPT教学课件


JDK1.3以上的版本,引用java.*等系统包不需 要设置;
不设置时,默认为当前目录,但设置时,一定 要写成“.;d:/temp;……”
2020/12/11
23
CH5 继承与多态
接口(Interface)
又称界面,用来实现类间多重继承功能的结构
其中定义了若干抽象方法和常量,形成了实现 某组功能的属性集合
构造函数的重载就是同一个类中存在着若干个 具有不同参数列表的构造函数。
创建对象时会自动根据给出的实际参数的数目、 类型和顺序来确定调用哪个构造函数。
2020/12/11
16
CH5 继承与多态
构造函数的重载
一个类的不同构造函数之间可以互相调用; 使用关键字this调用,调用的是参数匹配的另 一个构造函数;
当子类执行它自己定义的方法时,所操作的 就是它自己定义的变量,而把继承自父类的变量 “隐藏”起来。
2020/12/11
6
CH5 继承与多态
类的继承——方法的继承与覆盖
方法的继承——
父类的所有非私有方法可以被子类继承。
方法的覆盖——
方法名、返回值和 参数列表
子类重新定义一个与父类同名的方法。
子类覆盖时应该定义与父类完全相同的方法头。
调用语句是整个构造函数的第一个可执行语句。
2020/12/11
17
CH5 继承与多态
调用父类的构造函数
如果子类没有定义构造函数,创建子类对象时 将调用父类无参数的构造函数;
创建子类对象时,先执行父类无参数的构造函 数,再执行子类自己的构造函数;
子类使用super调用父类的构造函数,调用语 句必须是子类构造函数的第一个可执行语句。
CH5 继承与多态
继承的基本概念
继承实际上是存在于面向对象程序中的两个 类之间的一种关系。
/超类
当一个类获取另一个类中所有非私有的数据 和操作的定义作为自己的部分或全部成分时,就 称这两个类之间具有继承关系。
2020/12/11
1
CH5 继承与多态
继承的基本概念
一个父类可以同时拥有多个子类,父类实际 上是所有子类的公共域和公共方法的集合,而每 一个子类则是父类的特殊化。
域的继承—— 父类的所有非私有域是各子类都拥有的域的集合。
域的隐藏——
前提:子类重新定义一个与从父类那里继承来的域 变量完全相同的变量。
2020/12/11
5
CH5 继承与多态
类的继承——域的继承与隐藏
所谓隐藏是指子类拥有了两个相同名字的变 量,一个继承自父类,另一个由自己定义;
当子类执行继承自父类的操作时,处理的是 继承自父类的变量;
类的继承——this & super
this—— 表示当前对象本身,代表了当前对象的一个引用。
常用于将当前对象的引用作为参数传递给其他的对 象或方法。
2020/12/11
9
CH5 继承与多态
类的继承——this & super
super—— 用于在一个类中引用它的父类(属性和方法)。
代表的父类为“直接父类”。
一个包中的类不能重名,不同的包中类名可重。
包有两种:无名包和有名包。
2020/12/11
20
CH5 继承与多态
包的创建
Java源文件的第一条语句:package 包名; 包名一般用小写,一个编译单元中只允许一个。 没有package语句,放在当前目录下的无名包中。
2020/12/11
21
CH5 继承与多态
2020/12/11
10
CH5 继承与多态
多态的概念
一般是指一个程序中同名的不同方法共存的情况。
多态的实现
2020/12/11
方法覆盖 (Overload) 方法重载 (Override)
对象引用
11
CH5 继承与多态
构造函数的重载
创建类的对象时进行初始化工作; 类定义时可以根据需要定义多个构造函数。
包的使用(其他包中的类)
程序文件的开头使用import语句引入所需要的类; 程序文件的开头利用import引入整个包; 使用包名作为类的前缀。
2020/12/11
22
CH5 继承与多态
包的定位(CLASSPATH)
类似操作系统的PATH,指明了查找包的路径:
以classpath包含的一个或多个目录作为起始目录, 查找包目录,并在找到的包目录下查找类文件。
2020/12/11
25
PPT教学课件
谢谢观看
Thank You For Watching
26
2020/12/11
18
CH5 继承与多态
对象初始化的过 程
1、静态初始化运行
2、为对象分配内存空间,得到缺省值
3、执行显式初始化定义
4、执行构造函数中的初始化
2020/12/11
19
CH5 继承与多态
包(package)
Java利用包来组织和管理类,对应于文件系 统的目录结构。
包是一种松散的类的集合,同一包中的类默认 可以互相访问。
接口不能直接继承,需要由类具体定义抽象 方法,称为“实现”。
2020/12/11
24
CH5 继承与多态
实现接口
声明类时,用implements声明要实现的接口
类在实现指定接口的抽象方法时,必须使用完全 相同的方法头(返回值、参数列表等)
接口的抽象方法的访问控制符已指定为public, 类实现时必须显式地使用public
2020/12/11
7
CH5 继承与多态
类的继承——域的隐藏与方法的覆盖
不同之处: 子类隐藏父类的域只是使之不可见,父类的同名域 在子类对象中仍然占有自己的独立的内存空间; 子类方法对父类同名方法的覆盖将清除父类方法占 用的内存,从而使父类方法在子类对象中不复存在。
2020/12/11
8
CH5 继承与多态
单重继承
2020/12/11
2
CH5 继承与多态
类的继承——派生子类
Java的继承通过extends关键字来实现。
子类可以从父类继承所有非private的属性和 方法作为自己的成员。
例子:电话卡类的继承
2020/12/11
3
CH5 继承与多态
类的继承——域的继承与隐藏
相关主题