面向对象三(四)大特征——封装、多态、(抽象)
封装
封装:是指一种将抽象性函式接口的实现细节部分包装,隐藏起来的方法。
访问修饰符
修饰符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
默认 | √ | √ | × | × |
private | √ | × | × | × |
封装的步骤
- 1.修改属性访问的可见性,来限制访问(通过访问限定符)
- 2.对每个值的属性提供对外的公共方法访问(IDEA中:Getter and Setter)
多态
多态:同一个行为具有多个不同的表现形式或形态能力。多态就是使用同一个接口或者类来执行不同的操作的。
多态的优点
- 消除了类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
多态实现的条件
- 继承/实现关系
- 重写
- 向上造型,重写方法调用
向上造型:定义基类的引用,引用派生类的对象。
好处:
- 减少代码重复,使代码变简洁
- 提高系统扩展性
多态的实现原理
重写与重载
静态绑定:也称为静多态、编译期多态,即方法重载。在编译期就已经决定要调用的方法。
动态绑定:也称为动多态、运行时多态,即方法重写。在运行时才确定引用变量的方法调用,因为在程序运行时才能确定具体的类,因此,不用修改代码,就可以让引用变量绑定到不同的类实现上,使得该引用调用的具体方法随之改变,选择多个运行状态,即多态。
详戳【Java重载与重写】
抽象
抽象:现实生活中的事物被抽象成对象,把具有相同属性和行为的对象被抽象成类,再从具有相同属性和行为的类中抽象出父类。
抽象还体现在需要使用成员变量和成员方法。
更多有关Java基础,详戳【Java基础】,其他内容,详戳主页。