当前位置:
文档之家› JAVA封装继承与多态精品PPT课件
JAVA封装继承与多态精品PPT课件
{
width = w;
height = h;
depth = d;
}
ห้องสมุดไป่ตู้
double volume() //计算体积
{ return width * height * depth;
}
}
20
继承的JAVA实现
class BoxWeight extends Box { double weight;
BoxWeight(double w, double h, double d, double m) //字类构造函数
Public class manager extends employee {
String department; public void Guide() }
关键字extends 是解决继承问题的
13
继承
类之间的继承关系是面向对象程序设计语 言的基本特征
一个类(子类)是另一个类(父类)的特 例。父类是被继承的,子类是继承的
据(如属性),从而,使软件错误能够局部化,大大 减少查错和排错的难度。
“隐藏属性、方法或实现细节的过程称为封装。”
3
法拉力公司
封装的示例
迪斯尼汽车公司
公共
电话号码 电子邮箱 产品种类
私有
备件的制造方法 备件库存 备件的制造成本
公共
电话号码 电子邮箱 汽车种类
私有
汽车的组装方法 汽车库存 汽车的组装成本
一般性(父类)和特殊性(子类)
14
Continue
新类继承一般类的状态和行为,并根据需要增加自己的 状态和行为。
由继承而得到的类称为子类(sub class),被继承的类 称为父类(super class)。
父类可以是自己编写的类,也可以JAVA类库中的类。 利用继承可以有效使用代码的重复使用。 JAVA不支持多重继承,即子类只能有一个父类。
第4章 封装、继承与多态
1
学习目标
理解抽象和封装。 理解继承和多态。 掌握修饰符this和super的使用。
2
4.1 类的封装
含义:
java中,对象就是一个封装体。 把对象的属性和服务结合成一个独立的单位,并尽可
能隐蔽对象的内部细节(尤其是私有数据) 目的:使对象以外的部分不能随意存取对象的内部数
子类自动地享用父类中拥有的属性和方法。
继承的特点
具有层次结构
子类继承了父类的 属性和方法
6
Carnivorous 类
Lion 类
Tiger 类
示例
Animals 类
父类
父类/子类 是相对的
Herbivorous 类
Cow 类
Coat 类
子类
7
继承的优点
代码的可重用性
父类的属性和方 法可用于子类
可以轻松地自定义 子类
设计应用程序变 得更加简单
8
继承
继承是面向对象语言中最具有特色,也是与传 统最不相同的一个。
当一个类获取另一个类中所有非私有的数据和 操作的定义作为自己的部分或全部成分时,就 称为这两个类之间具有继承关系。
9
继承
例子:请确认各类之间的关系
plane military plane(军事) passenger plane (客机) cargo plane (货物) fighter plane (战斗机) Airliner (民用机)
15
继承的定义
子类的成员有一部分是子类自己声明定义的。 另一部分是从它的父类继承的。 子类继承父类的成员变量作为自己的一个成员
变量。 继承父类的方法作为自己的方法。
16
CONTINUE
使用关键字extends来声明一个类是另一个类的子类。 格式如下: class 子类名 extends 父类名 例如: class students extends People { }
String name; Date hireDate; Date dateofBirth; String jobTitle int grade; String Department; public String getDetails() public void Guide() }
12
Continue
10
军事机
战斗机
飞机 民用机r
货物机
客机
11
Public class Employee {
String name; Date hireDate; Date dateofBirth; String jobTitle int grade;
public String getDetails() }
Public class Manager {
{ width = w; //继承的属性 height = h; //继承的属性 depth = d; //继承的属性 weight = m;//子类特有的属性
} }
21
继承的JAVA实现
class DemoBoxWeight {
public static void main(String args[]) {BoxWeight mybox = new BoxWeight(10,20,15,34.3); //初始化子类对象mybox double vol; vol = mybox.volume(); //调用继承的父类方法 System.out.println("箱子的体积为:" + vol); System.out.println("箱子的重量为:" +
17
继承的实现
[修饰符]class 类名 [extends 父类] { 成员变量声明;
成员方法声明; }
子类中新增加的属性和方法是对父类的 扩展
子类中定义的与父类同名的属性是对父 类属性的隐藏,同名的方法是对父类方 法的覆盖
说明:
1、子类将自动 继承父类中的 protected 和 public等修饰的 非私有属性和 方法。
有选择地提供数据
4
封装特性
体现
设置对象中的成员变量和方法的访问权限 (public,private,protected,缺省);
提供一个统一供其他类引用的访问接口,如一些 public方法;
其它对象不能直接修改本对象所拥有的私有属性和私 有方法
包:类空间的划分单位
5
4.2 类的继承
含义:
2 、 private 属 性 和方法不能被 继承。
18
19
继承的JAVA实现
class Box
{
double width;
double height;
double depth;
Box() //无参构造函数
{
width = -1;
height = -1;
depth = -1;
}
Box(double w, double h, double d) //有参构造函数