类图:抽象类与具体类

类图:抽象类与具体类

puml.online

简介 / Introduction

抽象类(Abstract Class)不能直接实例化,它定义了一组子类共有的属性和方法骨架。具体类(Concrete Class)继承抽象类后,必须实现其所有抽象方法。本文展示如何在 PlantUML 和 Mermaid 中绘制这一模式。

PlantUML 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
abstract class Animal {
{abstract} +makeSound(): void
+eat(): void
}

class Dog extends Animal {
+makeSound(): void
}

class Cat extends Animal {
+makeSound(): void
}

Animal <|-- Dog
Animal <|-- Cat

abstract 关键字声明抽象类,{abstract} 标记抽象方法。extends 表示继承。

Mermaid 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
classDiagram
class Animal {
&lt;&lt;abstract&gt;&gt;
+makeSound() void
+eat() void
}
class Dog {
+makeSound() void
}
class Cat {
+makeSound() void
}
Animal <|-- Dog : extends
Animal <|-- Cat : extends

Mermaid 用 <<abstract>> 标签标注抽象类,<|-- 表示泛化(继承)关系。

对比 / Side-by-side

特性 PlantUML Mermaid
抽象类声明 abstract class Name class Name { <<abstract>> }
抽象方法 {abstract} +method() +method() void(无实现)
继承关系 A extends B `A <
可见性 + public,# protected + public,# protected

小结 / Wrap-up

PlantUML 对抽象类的语法更紧凑(abstract 关键字),Mermaid 则通过 <<abstract>> 标签显式标注。两者都能清晰表达”抽象类定义契约,具体类负责实现”这一核心面向对象概念。

  • 标题: 类图:抽象类与具体类
  • 作者: puml.online
  • 创建于 : 2026-10-16 09:00:00
  • 更新于 : 2026-10-19 01:07:19
  • 链接: https://puml.online/blog/class-diagram-abstract-concrete/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。