一. 封装(encapsulation)
封装:只是隐藏实现的细节,提高安全性, 降低使用复杂度。
为什么需要封装?
A. 将已有数据类型的变量封装可以 得到新的自定义类型(类)
B. 封装可以隐藏对象的属性信息 -- 安全性
C. 封装可以隐藏对象的实现细节 -- 安全性,方便性
生活实例:电视机,就给你遥控控制,其它都封装。 电脑,给你键盘和鼠标输入。
如何实现封装?
1.类
2.方法
3.属性
隐藏实现细节:对象的功能都封装到方法,中间方法设置访问权限,限制其它类方法。
强制使用方法来访问属性:
属性私有 getter,setter访问属性
示例:light
灯有品牌、功率、价格等静态特征,即属性
灯有开、关、变暗、变亮等动态特征,即方法
以Java语言来实现灯的例子:
class Light{
String brand;//品牌
double power;//功率
double price;//价格
public void on(){…….}
public void off(){…….}
public void brighten(){…….}
public void dim(){…….}
}
二、继承
1、定义:通过一个已有类派生一个新类的过程。
简单的说,继承就是在一个现有类型的基础上,
通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型过程
2、继承的特点:具有层次结构、子类继承了父类的属性和方法(除构造方法以外)
子类可以继承父类的私有成员,但是不可以直接使用父类的私有成员,
必需通过公有的方法才能使用私有的成员。
3、继承的优点:代码可重用性、父类的属性和方法可用于子类、
可轻松的定义子类、设计应用程序变得更简单
4、在JAVA中如何实现继承(通过extends关键字来实现)
5. 祖先类Object
三、多态性:方法的多种形态
简单的说:它是指方法名称相同,实现细节却不同。【同名不同用】
多态优点:使用多态提高代码的可扩展性及可维护性
多态的实现:
a. 方法重载
方法名相同,参数列表不同。
b. 方法重写
子类重写父类的方法。方法名,参数都必须相同。
返回值不同是否可以?
注意:不能降低父类方法的访问权限。
c. 上溯造型
子类对象赋值给父类引用。
上溯造型可以使重写的方法呈现多态,但同时会带来一个负面效应,即对象被转型后会损失自已扩展的属性和方法。