Класи в проекті не є незалежними. Між ними існують певні відносини.
Розглянемо два основні відношення між класами:
Класи А и В перебувають відносно спадкування, якщо між об'єктами цих класів існує відношення «є».
Наприклад, класи Квадрат і Прямокутник.
Ясно, що ці класи зв'язані відношенням спадкування, тому що «квадрат є прямокутником». Причому, батьківським класом є Прямокутник, а дочірнім Квадрат.
Класи А и В перебувають відносно агрегації, якщо одним з полів класу В є об'єкт класу А.
Тобто об'єкт класу A "вкладений" у клас B.
Клас А називається постачальником класу В, клас В називається клієнтом класу А.
Відношення "клієнт - постачальник" називають також відношенням вкладеності або вбудовування.
Між об'єктами цих класів існує відношення «має» або «полягає».
Наприклад, клас череда і клас корова.Череда складається з корів.
Тому в класі череда як поле буде існувати масив об'єктів класу корова. Тобто клас корова вкладений у клас череда.
Коли використовувати спадкування і коли агрегацію(вкладеність)?
Якщо один клас є підмножиною іншого, то повинне бути використане спадкування;
Якщо один клас є контейнером для іншого, то повинна бути використана вкладеність.