封装
封装是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法,封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
java的封装是通过控制访问级别来实现,java包含4类访问级别,按级别由低到高分别为:private(私有)、friendly(缺省)、protected(受保护)、public(公共)
注意:以上四种访问级别修饰符可以作用于任何变量和方法,类只可以定义为缺省(friendly)或公共(public)级别(嵌套类除外)
继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
换言之,就是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能
继承中,被继承的类称为父类(基类),继承类称为子类(派生类)
Java使用extends关键字实现继承, 语法如下:
class subClass extends superClass{
}
注意:Java是”单继承,多实现”,即一个类最多只能继承一个类,但是一个类可以实现多个接口(interface), 接口实现使用implements关键字(接口也可以继承接口)
class subClass implements interface 1, interface 2 .. interface n {
}
多态
定义:
多态是指允许不同类的对象(相同父类/基类)对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是方法调用)
换言之,就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针(java称为引用),来调用实现派生类中的方法
存在的必要条件:
要有继承/接口实现
要有重写/覆盖(Overriding)
父类引用指向子类
实现的技术:
实现多态的技术称为 动态绑定(dynamic binding),又叫 迟绑定,即是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
不要把函数重载理解为多态,因为多态是一种运行期的行为,而不是编译期的行为
作用:
消除类型之间的耦合关系
多态的例子:
比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果
Overloading(重载) 和 Overriding(重写/覆盖)
重载
重载只依据方法的名称相同、参数列表不同,来定义方法是否重载。满足重载的条件:
参数类型不同
参数个数不同
参数顺序不同
和作用域无关
和返回类型无关
重写/覆盖
重写是基于继承的,没有继承,就没有重写,重写的实现是在子类中对从父类中继承过来的非私有方法的内容进行修改的一个动作。满足重写的条件:
子类和父类方法名相同,参数列表相同
子类的作用域权限,不得低于父类
子类的返回类型必须和父类一致
注意:静态static方法属于特殊情况,静态方法只能继承,不能重写Override,如果子类中定义了同名同形式的静态方法,它对父类方法只起到隐藏的作用。调用的时候引用指向谁,就调用谁的静态方法,参考链接:http://blog.csdn.net/zhouhong1026/article/details/19114589