动态

详情 返回 返回

面向對象關聯(Association)和繼承(Inheritance)的區別 - 动态 详情

關聯(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         │
└───────────────┘

Add a new 评论

Some HTML is okay.