点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第六章汇总、
6.9 设计类
在面向对象程序设计中,一个基本的问题就是决定在你的程序中各个类之间的相互关系。一种可能性是从你已经定义的基类派生出若千个类来,以建立一个类的结构层次,并为特定的子类增加方法和数据成员。我们的Animal类和由它派生出来的子类就是这样一个例子。另一种可能性是定义一套类,它们没有结构层次关系,但是,有一些属于它们自己的类对象的数据成员。例如,Zoo类可能就有一个从Animal类派生的类对象作为成员。你可以有包含数据成员为类对象的类结构,其实我们已经在类Animal中接触过这种情况,它有一个String类型的成员。到目前为止,这些例子选择的方式都比较明确,但并不是总会这样地明显。你常常需要在把一个类作为层次结构中的一个类定义,还是作为一个类对象的成员的类定义之间进行选择。采用哪种方式最好呢?
与所有这类问题一样,没有一个明确的答案。如果面向对象程序设计是一个过程,而这个过程可以通过你只需盲目遵守的一套固定的规则来进行说明,那么我们就可以把它提交给计算机完成这些事情。尽管有一些准则,但可能解答中的内容可能更明显。
除了反映对象类型之间的现实世界关系的需求以外,使用多态性(或者我们在不久就会看到的接口)也是使用子类的一个主要原因。这是面向对象程序设计的精华,能够被等效处理的一堆相关的对象可以极大地简化你的程序。你已经看到如何从一个公共的基类Animal派生出来的类获得指定的各种动物类型,这将使我们可以对不同类型的动物进行处理,而它们就好像是同一种类型。产生的不同结果将取决于目前正在处理的动物类型,所有这些完全都是自动地。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |