Ім'я файлу: Реферат ООП Плахотнюк.docx
Розширення: docx
Розмір: 60кб.
Дата: 25.05.2022
скачати
Пов'язані файли:
Вм відповіді.docx

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТРАНСПОРТНИЙ УНІВЕРСИТЕТ

Факультет транспортних та інформаційних технологій

Кафедра інформаційних систем і технологій

Реферат

з дисципліни «Об’єктно-орієнтоване програмування»

на тему: «Особливості успадкування в мові Java»

Розробив студент
групи КН-II-1
Плахотнюк Максим Валерійович

Керівник роботи:
Лагодiна Людмила Петрiвна

КИЇВ 2021

Оглавление


Типи успадкування в Java 3

1) Одиничне успадкування в Java 5

2) Багаторiвневе успадкування Java 6

3) Ієрархічне успадкування Java 7

4) Множинне успадкування Java 8

5) Гiбридне успадкування Java 9

Правила успадкування в Java 10

Висновок 11


Типи успадкування в Java


Залежно від способу успадкування класів та кількості успадкованих класів, ми маємо такі типи успадкування, як показано на малюнку нижче види спадщини

Як показано на наведеному малюнку, існує п'ять типів успадкування в об'єктно-орієнтованому програмуванні, як описано нижче:



# 1) Одиночне успадкування: Коли похідний клас або підклас успадковує лише одну базу або суперклас, це одиночне успадкування.

# 2) Багаторівневе успадкування: У багаторівневому спадкуванні ми маємо більше одного рівня, коли клас успадковується від базового класу, а похідний клас, у свою чергу, успадковується іншим класом.

# 3) Ієрархічне успадкування: Ієрархія успадкування формується у цьому типі успадкування, коли суперклас успадковується більш ніж одним класом.

# 4) Множинне успадкування: Множинне успадкування - це таке, в якому клас може успадкувати властивості та поведінку від кількох батьків.

# 5) Гібридне успадкування: Коли один або декілька типів успадкування поєднуються, тоді воно стає гібридним успадкуванням.

Зауважте, що Java підтримує лише однорівневий, багаторівневий та ієрархічний тип успадкування за допомогою класів. Java не підтримує множинне та гібридне успадкування з класами.

1) Одиничне успадкування в Java


Єдиний спадок зображений, як показано нижче:



Тут підклас успадковується від одного суперкласу. Це одиночне успадкування. Будь-яка тварина, така як Собака, успадковується від виду Тварини. Це найпростіша форма спадкування.

Нижче наведено програму Java, яка пояснює Single Inheritance.

//base class:Animal class Animal { void Action_eat() { System.out.print('eating...'); } } //derived class:Dog class Dog extends Animal { void Action_bark() { System.out.print('barking...'); } } class Main{ public static void main(String args[]){ Dog d=new Dog(); //create an object of derived class System.out.print('The dog is '); d.Action_bark(); //call derived class method System.out.print(' The dog is '); d.Action_eat(); //call base class method } }

Вихід:



Тут у нас є один метод eat (Action_eat) у базовому класі Animal, який є загальним для видів тварин. У нас є похідний клас Dog, який походить від класу Animal. У класі Dog ми маємо метод, характерний для видів собак, кора (Action_bark).

Потім ми створюємо об’єкт Dog в основному методі, і оскільки клас Dog успадкував клас Animal, цей об’єкт може викликати метод eat, а також метод bark.

2) Багаторiвневе успадкування Java


У багаторівневому спадкуванні ми маємо ланцюжок успадкування. Це означає, що ми маємо батьківський клас, який успадковується похідним класом. Похідний клас, у свою чергу, діє як батьківський для іншого класу тощо.

Багаторівневе успадкування може бути представлене нижче:



Як видно на наведеному малюнку, є батьківський клас А. Клас B успадковується від класу A. Тоді є інший клас C, який, у свою чергу, успадковує від класу B. Таким чином, ми можемо бачити, що він утворює ланцюжок успадкування. Тут клас B стає посередницьким класом, який з'єднує класи A і C.

Продовжуючи наш приклад класу Animal нижче, ми можемо мати клас Dog, похідний від класу Animal. Тоді ми можемо мати ще одного класу Щеня, який є дитячою собакою, отриманою з класу Собака. Таким чином, ми можемо отримати багаторівневе успадкування.

Приклад програми для багаторівневого успадкування наведено нижче.

import java.util.*; import java.lang.*; import java.io.*; //parent class A class A { public void print_A() { System.out.print('SoftwareTestingHelp '); } } //Derived class B - intermediary class B extends A { public void print_B() { System.out.print('Java Series '); } } //Derived Class C class C extends B { public void print_C() { System.out.print('Tutorials'); } } public class Main { public static void main(String[] args) { C c_obj = new C(); //create Class C obj c_obj.print_A(); //call grandparent class method c_obj.print_B(); //call parent class method c_obj.print_C(); //call member method } }

Вихід:



Ми запрограмували точний ланцюжок, показаний вище. Тоді в основному методі ми створюємо об'єкт класу C. Об'єкт класу C може потім отримувати доступ до методів свого батьківського B, а також дідуся і бабусі A.

3) Ієрархічне успадкування Java


Клас може мати декілька похідних від нього класів. Отже, ми маємо одну базу або суперклас і більше одного підкласу. Цей тип успадкування називається «Ієрархічне успадкування».

Ієрархічне успадкування схематично представлено нижче:



Як приклад ієрархічного успадкування, ми можемо представити клас Animal як суперклас, а потім у нього є кілька тварин, таких як Кіт, Собака, Корова тощо.

Наведена нижче програма Java демонструє ієрархічне успадкування в Java.

//class Parent class Parent { public void print_parent() { System.out.println('In ::Parent class'); } } //child1 class class Child1 extends Parent { public void print_child1() { System.out.println('In ::Child1 class'); } } //child2 class class Child2 extends Parent { public void print_child2() { System.out.println('In ::Child2 class'); } } //child3 class class Child3 extends Parent { public void print_child3() { System.out.println('In ::Child3 class'); } } public class Main { public static void main(String[] args) { Child1 ch1 = new Child1(); //create a Child1 class object ch1.print_child1(); //call its member method Child2 ch2 = new Child2(); //create a Child2 class object ch2.print_child2(); //call its member method Child3 ch3 = new Child3(); //create a Child3 class object ch3.print_child3(); //call its member method ch3.print_parent(); //call parent class method with any object } }

Вихід:



Як ми бачимо з програми, у нас є батьківський клас і три дочірні класи, похідні від цього батька. В основному методі ми створюємо об'єкт кожного з дочірніх класів і викликаємо відповідні їм методи-члени.

Для виклику методів батьківського класу зауважте, що ми можемо використовувати будь-який об’єкт дочірнього класу, оскільки всі вони мають доступ до батьківського класу.

4) Множинне успадкування Java


Множинне успадкування - це ситуація, коли один клас може успадковувати більше ніж один клас, тобто один клас може мати більше одного батька. Роблячи це, клас може мати більше одного суперкласу і таким чином набувати властивостей і поведінки всіх своїх суперкласів.

Схематичне зображення множинної спадщини показано нижче:



Як показано вище, ми можемо отримати клас одночасно з кількох класів. Таким чином похідний клас набуде рис усіх батьківських класів. Це може спричинити серйозні неясності, особливо коли успадковані функції однакові.

Примітка: Java не підтримує множинне успадкування за допомогою класів. Але він підтримує множинне успадкування за допомогою інтерфейсів, про що ми поговоримо у наступному посібнику з успадкування.

Оскільки Java не підтримує множинне успадкування з класами, ми не будемо вдаватися в подробиці. Однак пізніше в навчальному посібнику ми спробуємо зрозуміти причини, за якими Java не підтримує множинне успадкування.

5) Гiбридне успадкування Java


Гібридне успадкування - це поєднання одного або декількох типів спадщин, про які ми вже говорили вище. Однак будь-яка комбінація призводить до типу багаторазового успадкування, який не підтримується Java.

Гібридне успадкування можна схематично зобразити, як показано нижче.



Отже, Java не підтримує гібридне успадкування також з класами. Але, як і багаторазове успадкування, ми можемо реалізувати гібридне успадкування в Java за допомогою інтерфейсів. Ми детально обговоримо це в нашому наступному уроці.

Правила успадкування в Java


Дотепер ми бачили основи успадкування, а також типи успадкування на Java, давайте перелічимо деякі правила, яких нам потрібно дотримуватися під час розробки додатків із успадкуванням.

Правило №1: Java не підтримує множинне успадкування

Як ми вже бачили, Java не підтримує множинне успадкування в будь-якій формі. При спробі багаторазового успадкування в програмі компілятор Java видає помилку компілятора.

Правило №2: Java не дозволяє циклічне успадкування

Клас, який успадковує себе, щоб сформувати цикл, називається циклічним успадкуванням.

Розглянемо наступні класи, клас1 та клас2.

клас class1 розширює клас 2 {}

клас class2 розширює клас 1 {}

Вищевказана ситуація утворює петлю. На Java це заборонено.

Правило №3: Ми не можемо успадкувати приватних даних

У темі “Модифікатори доступу” ми вже дізналися, що учасників з приватним доступом не можна успадкувати.

Правило №4: Конструктори не успадковуються

Оскільки конструктори використовуються для створення об'єктів класу, вони не успадковуються від одного класу до іншого.

Правило №5: Ми можемо використовувати батьківське посилання для доступу до дочірніх об’єктів

Ми вже бачили різні приклади спадкування. Ми можемо створити посилання на батьківський клас, а потім призначити йому похідний об’єкт класу, створений за допомогою нового ключового слова.

Якщо super - це суперклас, а sub - це клас, що походить від super, як показано нижче.

class super{} class sub extends super{ public static void main(String[] args){ super s_obj = new sub(); } }

Правило №6: Батьківські конструктори виконуються через super () у похідних конструкторах

Одне з правил говорить, що конструктори не можуть передаватися у спадок. Але конструктор суперкласу може бути виконаний всередині конструктора похідного класу за допомогою виклику super ().

Висновок


Ми обговорили типи успадкування в Java. Java підтримує лише одно-, багаторівневі та ієрархічні типи успадкування. Java не підтримує множинне та гібридне успадкування.

Потім ми обговорили різні правила, яких слід дотримуватися під час реалізації успадкування в Java. Цим ми завершили обговорення стосунків IS-A на Java.
скачати

© Усі права захищені
написати до нас