一、封装(Encapsulation)
该隐藏的隐藏,该公开的公开
1. 属性一般都是隐藏的,用访问控制修饰符private隐藏。
隐藏后,属性只能在类以内访问,程序可以根据需要提供get和set方法。
2. 对于某些业务方法或者get和set根据需要可以隐藏
3. 方法公开时,公开的是方法的声明定义,隐藏的是方法的实现。
4.修改封装的内部对整个系统没影响
5.对于某些业务方法事get和set根据需要可以隐藏
实例代码:
二、继承(TestInheritance)
从一般到特殊的关系,可以设计成继承
特点:共性写在父类里面,特性写在子类
访问控制修饰符:
是否可以继承 可以修饰那些
private: 本类 不可以继承(继承了也没有权利访问) 方法,属性
default: 本包 不一定(同包可以,不同包不可以) 类,方法,属性
protected: 本包+子类 可以继承 方法,属性
public: 公开的 一定可以继承 类,方法,属性
关于继承的使用和执行顺序见“构造方法和对象初始化”一文。
实例代码如下:
三、多态(Polymorphism)
子类对象可以当成父类对象来用
一个父类型的引用可能指向的是一个子类对象
Super s = new Sub();
s的编译时类型:Super 运行时类型:Sub
s instanceof Super -----> true
s instanceof Sub -----> true
多态特点:
1. 对象的运行时类型永远不变;
2. 对一个引用,只能调用编译时类型里面定义的方法
3. 运行时会根据运行时类型自动寻找覆盖过的方法运行
实例代码如下: