面向对象的概念
1、万物皆对象(Object)
2、对象具有状态和行为
3、所有的对象都是唯一的
4、类(Class)就是具有相同特性和行为的对象的集合
5、每个对象都是某个类的一个实例(Instance)
6、问题空间的元素和解空间的对象之间是一对一的映射关系
7、对象之间通过发送消息实现调用
8、类型决定了对象的接口(Interface)
9、接口定义了能给对象发送何种消息
10、类型不仅仅只是描述了作用于一个对象集合之上的约束条件,同时还有与其它类型之间的关系
11、类型之间“has-a”(拥有)的关系,即使用现有的类组合(composition)成新的类
12、类型之间“is-a”与“is-like-a”(相似性)的关系,即通过类的继承使得导出类(子类)拥有同基类(父类)相同接口
13、继承时只重载(overriding)基类的方法(不添加方法),即导出类与基类拥有完全相同的接口,导出类可以替代基类,这就是“is-a”
14、继承时在导出类中添加了新的方法,即新类扩展了接口,导出类虽然可以替代基类,但因为基类不能访问新的方法,因此替代并不完美,这就是“is-like-a”
15、多态(polymorphism)使得当向一个对象发送消息时,即使涉及向上转型(upcasting-将导出类看作是它的基类),该对象也知道要执行什么样的正确行为