共计 1077 个字符,预计需要花费 3 分钟才能阅读完成。
关联(Association)
Association 指的是 类之间的协作关系 ,其中一个类与另一个类进行交互,但它们之间 并没有父子关系 。Association 通常示意 一个类须要另一个类的某些服务或数据,或者示意类之间有某种独特的特色或属性。
继承(Inheritance)
Inheritance 指的是从 父类到子类的属性和办法的传递过程 ,子类能够 继承父类的属性和办法 ,并能够在此基础上增加本人的属性和办法。Inheritance 次要是为了 实现代码的重用,防止反复编写代码。在 Inheritance 中,子类和父类之间存在一种父子关系,子类从父类继承了所有的个性,包含属性和办法。子类能够增加新的个性或办法,也能够笼罩或重载继承的办法。
例子
以下通过图书馆管理系统为例来阐明 Association 和 Inheritance 的区别:
Association 关系
图书馆类 Library
和读者类 Reader
之间存在一种协作关系,每个读者能够在图书馆中借阅、偿还图书。此时 Library
类和 Reader
类之间就存在 Association 关系。
┌───────────────┐ ┌───────────────┐
│ Library │ │ Reader │
├───────────────┤ ├───────────────┤
│ │◀─────────┤ │
│ borrow_book │ │ borrow_book │
│ return_book │ │ return_book │
│ search_book │ │ │
│ │ └───────────────┘
└───────────────┘
Inheritance 关系
在图书馆管理系统中,所有书籍都有一些独特的特色,如书名、作者、出版社等等。因而能够定义一个 Book
类作为所有具体书籍类的父类,每个具体书籍类能够继承 Book
类的属性和办法。此时,具体的书籍类与 Book
类之间存在 Inheritance
关系。
┌───────────────┐
│ Book │
├───────────────┤
│ title │
│ author │
│ publisher │
│ price │
│ │
└───────────────┘
▲
│
┌───────────────┐
│ Novel │
├───────────────┤
│ genre │
│ language │
│ is_best_seller│
│ ISBN │
└───────────────┘
▲
│
┌───────────────┐
│ Textbook │
├───────────────┤
│ subject │
│ level │
│ edition │
│ ISBN │
└───────────────┘
正文完