Oversikt over arv i Java

I motsetning til andre programmeringsspråk som C, tilbyr Java en mekanisme der datamedlemmer og metoder i en klasse arves av en annen klasse. Denne prosessen er kjent som Arv i Java. For å arve fra en klasse brukes søkeordet "utvides". Arv i Java tillater gjenbrukbarhet av kode, slik at en klasse bare trenger å skrive de unike funksjonene, og resten av koden kan utvides fra den andre klassen. Klassen som arver fra den andre klassen er kjent som underklasse eller barneklasse, og klassen som arves kalles foreldreklasse eller superklasse. Syntaks, typer og implementering av arv vil bli diskutert i de følgende seksjonene.

Arvstyper i Java

Arv betyr et IS-A-forhold som ellers er kjent som et foreldre-barn-forhold. Foreldre og barn er allerede nevnt i introduksjonsdelen.

Før vi går over til arvelighetstypene i java, la oss først se syntaksen til arv.

syntaks:

class apple extends fruit
(
//methods and fields
)

Her er eple underklassen og frukten er foreldreklassen. Dette betyr at eple har visse unike egenskaper, og at det også har fruktens egenskaper.

Det er 4 forskjellige typer arv i Java.

  • Enkeltarv
  • Arving på flere nivåer
  • Hierarkisk arv
  • Flere arv (ved hjelp av grensesnitt)

La oss nå se hver av dem i detalj.

1. Enkeltarv

En klasse som bare utvider en klasse. I det følgende eksemplet utvider klasse eple klasse frukt.

dvs. frukt er superklassen og Apple er underklassen som utvider egenskapene og oppførselen til fruktklassen.

Følgende er demonstrasjonen av singelarv i Java.

Kode:

//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)

Produksjon:

2. Arving på flere nivåer

I denne arvtypen vil en klasse utvides fra en annen klasse og den avledede klassen fungere som baseklasse for en annen klasse.

I figuren er for eksempel en klasse firehjuling foreldreklassen og bilen er den avledede klassen for firehjulingsklasse. Samtidig kan klassebilen være baseklassen for klasse Maruti.

Kode:

//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)

Produksjon:

3. Hierarkisk arv

I hierarkisk arv har en baseklasse mer enn en barneklasse, noe som betyr at egenskapene til en klasse erverves av forskjellige klasser.

For eksempel har et klasse kjøretøy underklasser biler, sykler, scootere.

Kode:

//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)

Produksjon:

4. Flere arv

Flere arv i java er en type arv der en klasse har mer enn en foreldreklasse.

For eksempel anskaffer klasse C egenskapene til både klasse A og klasse B.

Men i Java kan flere arv bare oppnås ved å bruke grensesnitt.

Anta at flere arv implementeres som andre typer arv, en kompileringstid-feil kan oppstå som følger.

Kode:

//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)

Her vil ikke utdataene vises, da det inneholder en kompilertidsfeil.

Viktigheten av arv i Java

  • Gjenbruk av kode: Arv hjelper med å redusere omskriving av kode. dvs. kode kan gjenbrukes av andre klasser, og barneklassen trenger bare å skrive sine egne unike egenskaper. Dette reduserer tidsforbruket og kompleksiteten til koden.
  • For metodeoverskridelse: En metode som allerede er til stede i foreldreklassen blir erklært av barneklassen, da er den kjent som metodeoverskridende.
Merk: Tenk at hvis en klasse ikke skal gjenbrukes, kan nøkkelordet final brukes.

syntaks:

final class A
(
. . .
)
Class B extends A
(
. . .
)

I dette tilfellet vil det bli generert en feil som sier 'Kan ikke arve fra den endelige A'.

Konklusjon

Arv i Java er en egenskap som egenskaper og oppførsel til en klasse erverves av en annen klasse for å gi gjenbrukbarhet av kode. Det er forskjellige typer arv i Java som for eksempel singelarv, flernivåarv, hierarkisk arv og flere arv i Java. I dette dokumentet dekkes flere viktige sider ved arv.

Anbefalte artikler

Dette er en guide til arv i Java. Her diskuterer vi viktigheten og forskjellige arvetyper i java sammen med syntaks, eksempler og kodeimplementering. Du kan også se på følgende artikler for å lære mer-

  1. JScrollPane i Java
  2. Økter i PHP
  3. Sorterer i Java
  4. Hva er Java Garbage Collector?
  5. Java-distribusjonsverktøy
  6. Overstyrer i Java
  7. Arv i PHP