不知道如何实例化对象的类称为抽象类(abstract class)。知道如何实例化对象的类称为具体类(concrete class)。
在面向对象范型中,抽象类的一个重要用途是帮助创建继承层次结构。
如果我拿起一只闹钟对你说:“你觉得我的水果怎么样?”你会认为我疯了;而如果我拿起一只苹果问同样的问题,你就会觉得很正常。“水果”这个称谓表达了有用的信息,虽然你不能创建水果对象。事实上,它是一个类的(概念),但不知道如何实例化它这种类型的对象。
引擎中包含活塞,引擎有最大马力。活塞是有行为的,因此被建模成类,而最大马力只是一个描述性的属性,没有行动。
继承关系是面向对象范型中比较重要的关系之一。用它来表示数之间的“a-kind-of”关系是最好不过了。它的主要用途有两种,它被用作表示两个类之间的共性机制(泛化),还用来表示一个类是另一类的特殊类型(特化)。
决定性的问题是,“这个属性的值是否影响类的行为”?
对属性值的显示的分情况分析常常是错误的。类应当解融合成一个继承层次结构,每一个属性值都被换成一个派生类。
如果你觉得需要在运行时创建新的类,那么退后一步以认清你要创建的是对象。现在,把这些对象概括成一个类。
在派生类中用空方法(也就是什么都不做的方法)来覆写基类中的方法应当是非法的。
只要在面向对象设计中用到了继承,问自己两个问题:
1.派生类是否是它继承的哪个东西的一个特殊类型?
2.基类是不是派生类的一部分?
如果你在一个面向对象设计中发现了多重继承关系,确保没有哪个基类实际上是另一个基类的派生类。
分享到:
相关推荐
而《OOD启思录》被读者评价为“面向对象设计领域中的Effective C++”——正如Effective C++能帮助你迈向C++专家层面,《OOD启思录》能帮助你迈入OOD殿堂。 本书提供了改进面向对象设计的真知灼见。 全书共11章,...
《OOD启思录》是一本深入探讨面向对象设计(Object-Oriented Design,简称OOD)的经典教材。在软件开发领域,面向对象设计是构建可维护、可扩展且高效软件系统的关键技术之一。这本书以高清版的形式,为读者提供了一...
OOD启思录
### IT知识要点解析 #### 瀑布模型与迭代模型对比 **瀑布模型**是一种传统的软件开发模型,其流程线性且单向,包括分析、设计、编码、测试和维护等阶段。瀑布模型的优点在于其清晰性和易于管理,每个阶段都有明确...
### OOD启思录——面向对象设计改进精要 #### 概述 《OOD启思录—面向对象圣典》是一本深入探讨面向对象设计(OOD)改进之道的专业书籍。作者通过一系列指导原则帮助读者理解如何提升软件设计的完整性与效率。书中...
我自己要用的资源,如果有人想下,那也可以的这是一本很好的设计方面的书.
关于OOD对象深入解析,本书适合已经有一定工作经验人员查阅。
Upon completion of an object-oriented design, you are faced with a troubling question: "Is it good, bad, or somewhere in between?" Seasoned experts often answer this question by subjecting the design ...
面向对象设计领域的一本好书 全书介绍了面向对象设计的一组经验原则
找了好久终于找到中文版的了,还有目录,共享一下……
面向对象设计(Object-Oriented Design,简称OOD)是软件工程领域中的一种设计思想和方法,旨在通过模拟现实世界中的对象及其相互作用来构建软件系统。OOD的核心在于将复杂问题分解为一系列相对独立、功能明确的对象...
面向对象设计(Object-Oriented Design,简称OOD)是软件工程领域中的一种设计思想,它强调将复杂的系统分解成一系列相互协作的对象,每个对象都封装了自己的数据和行为。OOD不仅涵盖了面向对象编程(OOP)的基本...
OOP(面向对象编程)和OOD(面向对象设计)是C#中的核心概念,对于任何希望深入理解和掌握C#的开发者来说,这两者至关重要。 面向对象编程(OOP)的核心理念是将现实世界中的实体抽象为类,然后通过类创建对象来...
面向对象分析(Object-Oriented Analysis,简称 OOA)与面向对象设计(Object-Oriented Design,简称 OOD)作为软件工程中重要的组成部分,在软件开发过程中扮演着关键角色。这两种方法学不仅帮助开发者更好地理解...
面向对象设计(OOD)思想(示例代码见文末下载连接)收藏 有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。为了更好的理解设计思想,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,...
面向对象技术的C++ OOD实践是软件开发中的一项核心技能,它涵盖了从需求分析到系统设计再到实际编码的全过程。面向对象分析(OOA)是这个过程的起点,主要关注的是业务领域的理解和分析,目的是将现实世界的业务逻辑...
**对象导向设计(Object Oriented Design,OOD)** 对象导向设计是软件开发中的一种核心方法,它基于面向对象编程(Object-Oriented Programming,OOP)的理念,将现实世界中的问题转化为计算机程序中的模型。OOD...