什么是泛化关系?请举例说明并用UML类图描述之
时间: 2024-10-20 18:16:13 浏览: 49
泛化关系,也称为继承关系,在面向对象设计中,是指一种更普遍的概念类(父类或超类)包含更具体的概念(子类或派生类)。子类可以共享、扩展或修改其父类的属性和行为,而无需重新编写所有相关的代码。例如,在一个动物系统中,"哺乳动物"是一个更一般的概念,它包含"猫"和"狗"作为具体的子类。
在这个场景下,我们可以画出如下的UML类图:
```
+--+
| Animal |
+-------------------+
| -name: String | // 共享属性
| +eat(): void | // 共享方法
+-------------------+
+-------------------+
| Mammal |
+-------------------+
| -isWarmBlooded: boolean|
| +giveBirth(): void | // 子类特有的方法
| +breed(): string |
+-------------------+
+---------------+
| Cat |
+---------------+
| -color: String |
+---------------+
| +meow(): void |
+---------------+
+---------------+
| Dog |
+---------------+
| -breed: String |
+---------------+
| +bark(): void |
+---------------+
```
在这张图中,`Animal`是父类(或超类),`Mammal`是从`Animal`派生的子类,`Cat`和`Dog`又是从`Mammal`派生的子类。通过这种泛化关系,`Cat`和`Dog`都具有了`Animal`的一些基本特性(比如`eat()`方法),同时他们还有各自的特有属性和方法(如`meow()`、`bark()`等)。
阅读全文