Arv i Java OOP med exempel

Vad är arv?

Arv är en mekanism där en klass förvärvar egenskapen till en annan klass. Till exempel ärver ett barn egenskaperna hos sina föräldrar. Med arv kan vi återanvända fälten och metoderna för den befintliga klassen. Därför underlättar arv återanvändbarhet och är ett viktigt begrepp för OOP.

I denna handledning lär du dig-

  • Typer av arv
  • Arv i Java
  • Java Arvsexempel
  • Super Keyword
  • Lär dig arv i OOP med exempel

Typer av arv

Det finns Olika typer av arv i Java:

Enkel arv:

I Single Arv utökar en klass en annan klass (endast en klass).

Enkel arv

I ovanstående diagram utökas klass B endast klass A. Klass A är en superklass och klass B är en underklass.

Multipel arv:

I multipel arv sträcker sig en klass mer än en klass. Java stöder inte flera arv.

Multipel arv

Enligt diagrammet ovan utökar klass C klass A och klass B båda.

Arv på flera nivåer:

I arv med flera nivåer kan en klass ärva från en härledd klass. Därför blir den härledda klassen basklassen för den nya klassen.

Multilevel Arv

Som visas i diagrammet Klass C är underklass av B och B är en av underklass Klass A.

Hierarkisk arv:

I hierarkisk arv ärvs en klass av många underklasser.

Hierarkisk arv

Enligt ovanstående exempel ärver klass B, C och D samma klass A.

Hybridärv:

Hybridärv är en kombination av enstaka och flera arv.

Hybrid arv

Enligt ovanstående exempel är alla offentliga och skyddade medlemmar i klass A ärvt till klass D, först via klass B och för det andra via klass C.

Obs! Java stöder inte hybrid / multipel arv

Arv i Java

JAVA INHERITANCE är en mekanism där en klass förvärvar egenskapen till en annan klass. I Java, när det finns ett ”Is-A” -förhållande mellan två klasser, använder vi Inheritance. Moderklassen kallas en super klass och den ärvda klassen kallas en underklass. Nyckelordet extends används av underklassen för att ärva superklassens funktioner.

Arv är viktigt eftersom det leder till återanvändbarhet av kod.

Java Inheritance Syntax:

class subClass extends superClass { //methods and fields } 

Java Inheritance E exempel

Super-sökord

Super-nyckelordet liknar ”detta” nyckelord.

Nyckelordet super kan användas för att komma åt alla datamedlemmar eller metoder i föräldraklassen.

Supernyckelord kan användas på variabel-, metod- och konstruktornivå.

Syntax:

super.<method-name>();

Lär dig arv i OOP med exempel

Tänk på samma bankapplikation från föregående exempel .

Vi ska öppna två olika kontotyper, en för att spara och en för kontroll (även känd som aktuell).

Låt oss jämföra och studera hur vi kan närma oss kodning ur ett strukturerat och objektorienterat programmeringsperspektiv. I strukturerad programmering skapar vi två funktioner –

  1. En att dra tillbaka
  2. och den andra för insättningsåtgärder.

Sedan bearbetningen av dessa funktioner förblir densamma över alla konton.

OOP ”: Medan du använder OOP: s programmeringsmetod. Vi skulle skapa två klasser.

  • Varje har implementering av insättnings- och uttagsfunktionerna.
  • Detta kommer att överflödigt extraarbete.

Ändringsförfrågan i programvara

Nu är det en förändring i kravspecifikationen för något som är så vanligt i mjukvaruindustrin. Du ska lägga till funktionsprivilegierat bankkonto med kassakrediter. Som bakgrund är checkräkning en möjlighet där du kan ta ut ett belopp som är mer än tillgängligt saldot på ditt konto.

Strukturell metod: Med funktionell metod måste jag ändra min tillbakadragningsfunktion, som redan är testad och baslinjerad. Och lägg till en metod som nedan kommer att ta hand om nya krav.

OOP: s tillvägagångssätt: Med OOP: s tillvägagångssätt behöver du bara skriva en ny klass med unik implementering av återkallningsfunktionen. Vi rörde aldrig den testade biten kod.

Ytterligare en begäran om ändring

Vad händer om kravet ändras ytterligare? Gillar att lägga till kreditkortskonto med sitt eget unika krav på insättningar.

Strukturell metod: Med hjälp av strukturell metod måste du ändra testad insättningskod igen.

OOP: s tillvägagångssätt: Men med hjälp av objektorienterat tillvägagångssätt kommer du bara skapa en ny klass med sin unika implementering av insättningsmetod (markerad röd i bilden nedan).

Så även om den strukturella programmeringen verkar som en enkel metod från början, vinner OOP på lång sikt.

Fördel med arv i OOP

Men man kan argumentera för att du i alla klasser har upprepade bitar av kod.

För att övervinna detta skapar du en överordnad klass, säger ”konto” och implementerar samma funktion som insättning och uttag. Och gör barnklasser ärvda ”konto” klass. Så att de får tillgång till uttag och insättning av funktioner i kontoklassen.

Funktionerna krävs inte att implementeras individuellt. Detta är arv i java. .

Write a Comment

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *