多态一个对象变量可以引用多种实际类型的现象叫做多态(polymorphism)在java和c++语言中指的是可以用子类对象赋给父类对象说道多态就要说说覆盖(overriding)覆盖实际上指在同一个函数原型的情况下将父类的一个实现替换为子类的一个实现 动态绑定在运行时能够自动的选择调用那个方法的现象叫做动态绑定(dynamic binding) 继承的设计技巧 将公共操作和域放在超类 不要使用受保护的域 使用继承实现isa关系 除非所有继承的方法都有意义否则不要使用继承 在覆盖方法时不要改变预期的行为 使用多态而非类型信息 不要过多的使用反射 如果设计合理OO设计中根本不会出现全局数据之类的东西这一点保证了OO系统中高度的数据完整性 在OO术语中数据表示为属性行为表示为方法限制对某些数据或方法的访问叫做数据隐藏(Data Hiding)为了支持数据隐藏的概念方法里提出了访问方法(accessor method)和设置方法(mutator method)两种特殊方法 封装通过把数据和方法合并到一个对象里以控制对数据和方法的访问的OO术语通常一个对象不应该对另一个对象的内部数据进行操作应该设计完成特定任务的小对象而不是设计完成许多功能的大对象 对象数据的多种英文表达方式属性(attribute)特性(property) 对象方法的多种英文表示方式方法(method)行为(behavior) 类和对象的关系类是创建对象的模板我们使用类来创建对象当一个对象被创建时我们说对象被实例化对象被实例化后才会在内存中存在有个例子可能对于理解类和对象很有帮助在关系型数据库中表的定义就是类表中的行数据是对象 消息消息是对象之间的通讯机制当对象A调用对象B的一个方法时就是对象A在向对象B发送一个消息 接口最终为用户提供服务的集合理想情况下应该只为最终用户提供他们需要的服务接口要最小化 对象持久性(object persistence)指保存对象的状态从而可以在以后恢复且使用 |