Наслеђивање у Јава ООП-овима са примером

Преглед садржаја:

Anonim

Шта је наслеђивање?

Наслеђивање је механизам у којем једна класа стиче својство друге класе. На пример, дете наслеђује особине својих родитеља. Наслеђивањем можемо поново користити поља и методе постојеће класе. Отуда наследство олакшава поновну употребљивост и важан је концепт ООП-а.

У овом упутству ћете научити-

  • Врсте наследства
  • Наслеђивање у Јави
  • Пример наслеђивања Јава
  • Супер Кеиворд
  • Научите наслеђивање у ООП-има са примером

Врсте наследства

У Јави постоје различити типови наслеђивања:

Једно наслеђе:

У појединачном наслеђивању једна класа проширује другу класу (само једна класа).

Наслеђивање појединачно

У горњем дијаграму, класа Б се простире само на класу А. Класа А је супер класа, а класа Б је подкласа.

Вишеструко наслеђивање:

У вишеструком наслеђивању, једна класа проширује више класа. Јава не подржава вишеструко наслеђивање.

Вишеструко наслеђивање

Као што је приказано на горњем дијаграму, класа Ц проширује класу А и класу Б.

Наслеђивање на више нивоа:

У наслеђивању на више нивоа, једна класа може наследити из изведене класе. Дакле, изведена класа постаје основна класа за нову класу.

Наслеђивање на више нивоа

Као што је приказано на дијаграму Класа Ц је подкласа Б, а Б је подкласа Класа А.

Хијерархијско наслеђивање:

У хијерархијском наслеђивању, једну класу наслеђују многе подкласе.

Хијерархијско наслеђивање

Као што је приказано у горњем примеру, класа Б, Ц и Д наслеђују исту класу А.

Хибридно наслеђивање:

Хибридно наслеђивање је комбинација појединачног и вишеструког наследства.

Хибридно наслеђивање

Као што је приказано у горњем примеру, сви јавни и заштићени чланови класе А наслеђују се у класу Д, прво преко класе Б, а затим преко класе Ц.

Напомена: Јава не подржава хибридно / вишеструко наслеђивање

Наслеђивање у Јави

НАСЛЕЂИВАЊЕ ЈАВЕ је механизам у којем једна класа стиче својство друге класе. У Јави, када постоји веза „Ис-А“ између две класе, користимо наслеђивање. Родитељска класа назива се супер класа, а наслеђена класа подкласа. Кључна реч

extends користи подкласа за наслеђивање карактеристика супер класе.

Наслеђивање је важно јер доводи до поновне употребе кода.

Синтакса наслеђивања Јава:

class subClass extends superClass{//methods and fields}

Пример наслеђивања Јава

class Doctor {void Doctor_Details() {System.out.println("Doctor Details… ");}}class Surgeon extends Doctor {void Surgeon_Details() {System.out.println("Surgen Detail… ");}}public class Hospital {public static void main(String args[]) {Surgeon s = new Surgeon();s.Doctor_Details();s.Surgeon_Details();}}

Супер Кеиворд

Кључна реч супер је слична „овој“ кључној речи.

Кључна реч супер може се користити за приступ било ком члану података или методама родитељске класе.

Супер кључна реч се може користити на нивоу променљивих, метода и конструктора.

Синтакса:

super.();

Научите наслеђивање у ООП-има са примером

Размотрите исту банкарску апликацију из претходног примера.

Требало би да отворимо два различита типа рачуна, један за чување и други за проверу (познат и као текући).

Упоредимо и проучимо како кодирању можемо приступити из структуриране и објектно оријентисане перспективе програмирања. Структурни приступ : У структурираном програмирању створићемо две функције -

  1. Један да се повуче
  2. А други за депозитну акцију.

Будући да рад ових функција остаје исти на свим рачунима.

Приступ ООП-а : Док користим приступ програмирању ООП-а . Створили бисмо две класе.

  • Сваки од њих има функцију депозита и повлачења.
  • Ово ће бити сувишан додатни посао.

Захтев за промену у софтверу

Сада постоји промена у спецификацији захтева за нешто што је тако често у индустрији софтвера. Требало би да додате привилеговани банкарски рачун с функцијом прекорачења. Као позадину, прекорачење је могућност у којој можете подићи износ већи од расположивог стања на вашем рачуну.

Структурни приступ: Користећи функционални приступ, морам да модификујем своју функцију повлачења, која је већ тестирана и базична. А додавање методе као у наставку побринуће се за нове захтеве.

ООП приступ: Користећи ООП приступ, само треба да напишете нову класу са јединственом имплементацијом функције повлачења. Никада нисмо додирнули тестирани део кода.

Још један захтев за промену

Шта ако се захтев даље промени? Желите да додате рачун на кредитној картици са својим јединственим захтевом за депозите .

Структурни приступ: Коришћењем структурног приступа морате поново променити тестирани комад депозита.

Приступ ООП-а : Али користећи објектно оријентисани приступ, само ћете створити нову класу са њеном јединственом применом методе депозита (означено црвеном бојом на слици испод).

Дакле, иако се структурно програмирање у почетку чини као лак приступ, ООП побеђује дугорочно.

Предност наслеђивања у ООП-има

Али неко може тврдити да у свим класама имате понављане делове кода.

Да бисте то превазишли, направите родитељску класу, реците „рачун“ и примените исту функцију депозита и повлачења. И нека подређене класе буду наслеђене класе „налога“. Тако да ће имати приступ функцијама подизања и депозита у класи рачуна.

Није потребно да се функције имплементирају појединачно. Ово је Наслеђивање у јави. .