Java 面向对象设计的五个基本特性
万物皆对象
:将对象视为奇特的变量,可以存储数据。除此之外,还可以要求它在自身上执行操作。理论上来说:你可以抽取待求解问题的任何概念化构件(狗、建筑物、服务等)。程序是对象的集合,它们通过发送消息来告诉彼此所要做的
:要想请求一个对象,就必须对该对象发现一条消息,更具体的来说:可以把消息看作对某个对象的方法的调用请求。每个对象都有自己的由其他对象所构成的存储
:简单来说:可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。(has a or is a 关系)。每个对象都有自己的类型
:通用说法:“每个对象都是每个类(class)的一个实例(instance)这里的“类”就是“类型”的同义词”。每个类最重要的区别于其他类的特性就是:可以发送什么样的消息(double、int、String)。某一特定类型的所有对象都可以接受同样的消息
:意味深长的表述:例如“圆形”同时也是一个“几何形”所以一个圆形对象必定能够接受一个发送给几何形对象的消息(继承)。这种可代替性(substitutability)是 OOP 中最强有力的概念。
参考:Java 编程思想 第四版