Java
的三大特性,继承、封装和多态大家应该都有所耳闻。本篇短文,浅谈下这几种特性的意义所在。
前置知识
- 熟悉面向对象语言
- 有使用过三大特性的经验
封装
关于封装,其最简单的用法就是,在一个类中把不需要给他人修改和展示的属性或者方法隐藏,其余则的公开。
其作用有几点:
- 防止被不熟悉该业务的同事修改,导致数据出错或者功能出错
- 让相关类的调用更加简单清晰,只让可调用的方法被暴露,可减小调用者的使用负担
继承
多数面向对象语言中都有继承的特性,这是一个 is-a
的特性。
继承的意义有以下几点:
- 解决代码复用问题
- 父类、子类与现下生活相似,有结构美
但是过度使用继承,也会使得代码可读性和可维护性变差。提倡 多组合,少继承
多态
多态是使用继承或者基于接口类,来使用子类替换父类
使用多态的几个意义有:
- 提高代码的复用性和可拓展性
- 隐藏代码功能的具体实现,让代码的调用更加方便
- 让代码更加解耦
多态是优雅的设计模式的基础,笔者在前面的封装框架一文中,也用到了多态的特性
抽象?
抽象是特性么?抽象在java中是一个特性,但是即使 java
不提供该特性,事实上我们调用函数,也是在实现该特性。
Java 中的抽象类 或者 接口类,都是包含抽象的特性的用法。使用抽象,能让我们不关注于代码本身,而是关注其功能。
为何标题打了 ? ,是抽象不包含于三大特性之中,但是抽象的的应用应该是在编码的全方面的。我们只去调用类的 public 方法可以看作是抽象,将类名显示一个泛化的功能也是抽象。
本文是 设计模式
的基础,了解设计模式不能空泛化,要知晓为什么,怎么做