АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Відносини між класами

Читайте также:
  1. II. Соціальні відносини як форма прояву соціальних взаємодій.
  2. Аграрне виробництво в національній економіці. Форми господарювання і земельні відносини
  3. Взаємовідносини органів державної влади й місцевого самоврядування з органами Служби безпеки України
  4. Взаємовідносини органів публічної влади із судовими органами
  5. Відносини
  6. Відносини місцевих державних адміністрацій у системі вертикальних та горизонтальних зв’язків
  7. Відносини учасників паттерна.
  8. Відносини учасників паттерна.
  9. Відносини учасників паттерна.
  10. Відносини учасників паттерна.
  11. Глава 18 ПРАВОВІДНОСИНИ. ЮРИДИЧНІ ФАКТИ

Існують наступні види відносить між класами [4]:

1. Композиція. Класи A і В знаходяться у відношенні «клієнт-постачальник», якщо одним із полів класу В є об'єкт класу А. Клас А називається постачальником класу В, клас В називається клієнтом класу А. Для забезпечення доступу до методів класу постачальника, вони повинні бути забезпечені модифікатором public.

2. Спадкування. Класи А і В знаходяться у відношенні «батько-нащадок», якщо при оголошенні класу В клас А вказаний як батьківський клас. Клас А називається батьком класу В, клас В називається нащадком класу А. Для забезпечення доступу до методів класу батька, вони повинні бути забезпечені модифікатором pubic або protected.

Створимо тепер клас Derived – нащадок класу Found. У простому випадку оголошення класу може виглядати так:

 

public class Derived: Found

{

}

Тіло класу Derived порожнє, але це зовсім не означає, що об'єкти цього класу не мають полів і методів: вони успадковують всі поля і методи (крім конструктора) класу Found і тому можуть робити все, що можуть робити об'єкти батьківського класу. Можна навіть не створювати власних конструкторів класу. У цьому випадку автоматично додається конструктор за замовчуванням – конструктор без аргументів, який буде викликати конструктор без аргументів батьківського класу. Такий конструктор у батька повинен бути, інакше виникне помилка.

Що може робити нащадок з полями? Насамперед, він може додати нові властивості – поля класу. Він може приховати поле батька, додавши власне поле з тим же ім'ям, що і поле батька, можливо, змінивши тип цього поля і його модифікатори. Приховування батьківського поля не означає, що нащадок видаляє поле, яке успадкував від батька. Це поле у нащадка залишається і доступно для виклику, але приховано, і щоб дістатися до нього, необхідно ім'я поля уточнити ім'ям батька, що задається ключовим словом base. Приховувані поля слід створювати з використанням модифікатору new. Якщо цього не зробити, то батьківське поле все одно буде приховано, і на етапі компіляції буде видано попередження про виниклу ситуацію.

Додавання методів і зміна методів батька. Нащадок може:

1. Створити новий власний метод з ім'ям, відмінним від імен успадкованих методів.

2. Змінювати методи батька. Якщо ім'я доданого методу нащадка збігається з ім'ям методу батька можливі наступні ситуації:

2.1. Методи з однаковим ім’ям та різною сигнатурою – це перевантаження методів.

2.2. Методи з однаковим ім’ям та однаковою сигнатурою:

2.2.1. Приховування методу (оголошення з ідентифікатором new) При цьому батьківський метод доступний за допомогою слова base.

2.2.2. Перевизначення методу (тільки в тому випадку, якщо батьківський метод оголошений як віртуальний або абстрактний, для цього використовується модифікатор override).


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)