Översikt över arv i Java

Till skillnad från andra programmeringsspråk som C, erbjuder Java en mekanism genom vilken datamedlemmar och metoder i en klass ärvs av en annan klass. Den här processen kallas Inheritance i Java För att ärva från en klass används nyckelordet "extends". Arv i Java tillåter återanvändbarhet av kod så att en klass endast behöver skriva de unika funktionerna och resten av koden kan utökas från den andra klassen. Klassen som ärver från den andra klassen kallas underklass eller barnklass och klassen som ärvs kallas föräldraklass eller superklass. Syntax, typer och implementering av arv diskuteras i följande avsnitt.

Arvstyper i Java

Arv betyder en IS-A-relation som annars kallas förälder-barn-relation. Förälder och barn nämns redan i introduktionsdelen.

Innan vi går över till de typer av arv i java, låt oss först se syntaxen för arv.

Syntax:

class apple extends fruit
(
//methods and fields
)

Här är apple underklassen och frukten är förälderklassen. Detta innebär att äpplet har vissa unika egenskaper och att det också har fruktens egenskaper.

Det finns fyra olika typer av arv i Java.

  • Enskild arv
  • Arv på flera nivåer
  • Hierarkisk arv
  • Multipel ärft (med hjälp av gränssnitt)

Låt oss nu se var och en av dem i detalj.

1. Enstaka arv

En klass som bara utvidgar en klass. I följande exempel förlänger klassäpple klassfrukten.

dvs. frukt är superklass och Apple är underklass som utvidgar egenskaperna och beteendet hos fruktklassen.

Följande är demonstrationen av singelarv i Java.

Koda:

//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
)
)

Produktion:

2. Arv på flera nivåer

I denna typ av arv utvidgas en klass från en annan klass och den härledda klassen fungerar som basklass för någon annan klass.

Till exempel, i figuren, är en klass fyrhjuling föräldraklassen och bilen är den härledda klassen för fyrhjulingsklass. Samtidigt kan klassbilen vara basklassen för klass Maruti.

Koda:

//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();
)
)

Produktion:

3. Hierarkisk arv

I hierarkisk arv har en basklass mer än en barnklass, vilket innebär att egenskaperna hos en klass förvärvas av olika klasser.

Till exempel har ett klassfordon underklasser bilar, cyklar, skoter.

Koda:

//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();
)
)

Produktion:

4. Multipel ärft

Flera arv i java är en typ av arv där en klass har mer än en överordnad klass.

Till exempel förvärvar klass C egenskaperna för både klass A och klass B.

Men i Java kan flera erfarenheter uppnås endast genom att använda gränssnitt.

Anta att flera arv implementeras som andra typer av arv, ett kompileringstid kan uppstå enligt följande.

Koda:

//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();
)
)

Här visas inte utgången eftersom den innehåller ett kompileringstidsfel.

Vikten av arv i Java

  • Kodåteranvändbarhet: Arv hjälper till att minska omskrivningen av koden. dvs. kod kan återanvändas av andra klasser och barnklassen behöver bara skriva sina egna unika egenskaper. Detta minskar kodens tidsförbrukning och komplexitet.
  • För metodöverskridande: En metod som redan finns i förälderklassen deklareras av barnklassen, då kallas den metodöverskridande.
Obs: Antag att om en klass inte ska återanvändas kan nyckelordet final användas.

Syntax:

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

I detta fall kommer ett fel att genereras som säger "Kan inte ärva från den sista A".

Slutsats

Arv i Java är en egenskap som egenskaper och beteenden för en klass förvärvas av en annan klass för att ge återanvändbarhet av kod. Det finns olika typer av arv i Java, till exempel enkel arv, flerfaldig arv, hierarkisk arv och multipel arv i Java. I detta dokument behandlas flera viktiga aspekter av arv.

Rekommenderade artiklar

Detta är en guide till Arv i Java. Här diskuterar vi vikten och olika typer av arv i java tillsammans med syntax, exempel och kodimplementering. Du kan också titta på följande artiklar för att lära dig mer-

  1. JScrollPane i Java
  2. Sessioner i PHP
  3. Sorterar i Java
  4. Vad är Java Garbage Collector?
  5. Java-distributionsverktyg
  6. Övergripande i Java
  7. Arv i PHP

Kategori: