摘要:
抽象类是不可以实例化的,抽象类中的抽象方法也要用abstract声明,这是一个从此类中继承出的所有类型都具有的接口方法,但是此刻我没有为他设计任何具体实现。当该类被继承时,抽象方法必须被实现,否则继承类仍然是一个抽象类。创建抽象方法使得你可以将一个方法置于接口中而不必被迫为此方法提供可能毫无意义的方法体。Interface(接口),它本身不允许有任何方法定义。他提供了接口与实现的完美分离。并发就是... 阅读全文
摘要:
一个圆形就是一个几何形状,判断是否继承,就是要确定你是否可以用is-a来描述类之间的关系,并使之具有意义。有时你必须在导出类型中添加新的接口元素,这样也就扩展了接口并创建了新的类型。这种情况我们可以描述为is-like-a(像是一个)的关系。新类型具有旧类型的借口,但是他还包含其他方法,所以你不能说他们完全相同。在处理类型的层次结构时,经常想把一个对象不当做他所属的特定类型来对待,而是将其当作其基... 阅读全文
摘要:
代码复用是面向对象程序设计语言所提供的最了不起的优点之一。创建一个新类,该类的成员对象通常都被声明为private,使得使用该类的客户端程序员不能访问他们。这也使得你可以在不干扰现有客户端代码的情况下,修改这些成员。当源类(被称为基类、超类或父类)发生变动时,被修改的副本(被称为导出类、继承类或者子类)也会反映出这些变动。有2种方法可以使基类与导出类产生差异。第一种方法:直接在导出类中添加新方法。... 阅读全文
摘要:
将程序开发人员按照角色分为类创建者和客户端程序员是很有好处的,客户端程序员的目标是收集各种用来实现快速应用开发的类,类创建者的目标是构建类,该类只想客户端程序员暴露必须的部分,而隐藏其他所有部分,被隐藏的部分通常代表对象内部脆弱的部分,因此将实现隐藏起来可以减少程序的bug. 访问控制的第一个存在原因就是让客户端程序员无法触及他们不应该触及的部分---这些部分对数据类型的内部操作来... 阅读全文
摘要:
当你开发或者理解一个程序设计时,最好的方法之一就是将对象想象为“服务提供者”。你的目标就是去创建能够提供理想的服务来解决问题的对象集合。如果我可以将问题从表象中抽象出来,那么什么样的对象可以马上解决我的问题呢? 将对象看作是服务提供者还有一个好处:它有助于提高对象的内聚性。高内聚时软件设计的基本质量要求之一:这意味着一个软件构建的各个方面组合的很好。因此,每个对象都有一个它所能提供... 阅读全文
摘要:
所有的对象都是唯一的,但同时也是具有相同的特性和行为的对象所归属的类的一部分。既然类被描述成了具有相同特性和行为的对象集合,那么一个类就确实是一个数据类型,就像所有浮点型数字具有相同的特性和行为集合一样。面向对象方法并不是仅局限于构建仿真程序,无论你是否同意任何程序都是你所设计的系统的一个仿真的概念,面向对象技术确实可以将大量的问题降解为一个简单的解决方案。你向某个对象发送消息,这个对象便... 阅读全文