一:抽象
所有编程语言都提供了抽象机制。可以认为,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。(摘自java编程思想)
那什么是面向对象的抽象呢?
面向对象的抽象就是把一类对象的共有特征构造成类的过程。对应值空间和操作空间分为两方面:数据抽象和行为抽象。
注1:面向机器的抽象:高级语言是对机器指令序列的抽象。
注2:java抽象机制:java提供的抽象机制允许程序员在需要的时候构建自己的抽象方法。包含了两种重要的抽象方法:参数化抽象和规格化抽象。参数化抽象是用参数来替代数据特征来进行抽象。这样就能归纳出模块,从而使其可以应用到更多的情况。例如,可以定义一个排序抽象,既能实现对实数数组的排序,又能实现对整型数组的排序,甚至对数组类型这类一般结构都有用。规格化抽象是将运行细节(即模块如何实现)抽象为用户所需求的行为(即注释)。这是从具体实现中抽象出模块,需要的仅仅是模块的实现能够匹配我们所依赖的表述形式。每当将一个过程和一个注释(这个注释提供了充分的信息,其他人不用看过程主体就能使用该过程)关联起来,我们就会使用规范化抽象。
二:继承
继承是所有OOP语言和Java语言不可缺少的组成部分。
继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类),新建的类被称为子类(派生类)。继承也是运行时的多态性的基础。
三:封装
封装就是把类的值空间和操作空间进行隐藏,只对外提供已定义的接口。
例如:最简单的pojo对象,
所有的成员变量都
是私有,只能通过提供的get/set方法才能对这些数据进行操作。
四:多态性
多态性也称作动态绑定、后期绑定或运行时绑定。多态是指不同类型的对象对同一基类类型的变量的方法调用时返
回不同的结果。
注:重载是静态绑定,但不是多态。
总结:Java四大特性各自实现了不同的功能,但是又紧密联系,灵活应用各种特性才能写好更健壮的代码。