Přehled dědičnosti v Javě

Na rozdíl od jiných programovacích jazyků, jako je C, Java nabízí mechanismus, pomocí kterého jsou datové členy a metody jedné třídy zděděny jinou třídou. Tento proces je v Javě označován jako Dědičnost. Aby bylo možné zdědit třídu, používá se klíčové slovo „rozšíření“. Dědičnost v Javě umožňuje opakované použití kódu, takže třída potřebuje pouze psát jedinečné funkce a zbytek kódu lze rozšířit z jiné třídy. Třída, která zdědí od jiné třídy, je známá jako podtřída nebo podřízená třída a třída, která byla zděděna, je známá jako nadřazená třída nebo nadtřída. Syntaxe, typy a implementace dědičnosti budou popsány v následujících částech.

Druhy dědičnosti v Javě

Dědičnost znamená vztah IS-A, který je jinak známý jako vztah rodič-dítě. V úvodní části jsou zmíněny rodiče a děti.

Před přechodem na typy Dědičnosti v jávě se nejprve podívejme na syntaxi Dědičnosti.

Syntax:

class apple extends fruit
(
//methods and fields
)

Zde je jablko podtřídou a ovoce je mateřskou třídou. To znamená, že jablko má určité jedinečné vlastnosti a má také vlastnosti ovoce.

V Javě jsou 4 různé typy dědičnosti.

  • Jednotné dědictví
  • Víceúrovňové dědictví
  • Hierarchické dědictví
  • Vícenásobná dědičnost (pomocí rozhraní)

Nyní se na každou z nich podívejme podrobně.

1. Jediné dědictví

Třída, která rozšiřuje pouze jednu třídu. V následujícím příkladu třída apple rozšiřuje plody třídy.

tj. Ovoce je nadtřída a Apple je podtřída, která rozšiřuje vlastnosti a chování třídy Ovoce.

Následuje ukázka jediné dědičnosti v Javě.

Kód:

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

Výstup:

2. Víceúrovňové dědictví

V tomto typu dědičnosti bude třída rozšířena z jiné třídy a odvozená třída funguje jako základní třída pro jinou třídu.

Například na obrázku je čtyřkolka třídy rodičovská třída a vůz je odvozená třída třídy čtyřkolka. Zároveň může být třídní vůz základní třídou třídy Maruti.

Kód:

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

Výstup:

3. Hierarchické dědictví

V hierarchickém dědictví má základní třída více než jednu podřízenou třídu, což znamená, že vlastnosti třídy získávají různé třídy.

Například vozidlo třídy má podtřídy auta, kola, skútry.

Kód:

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

Výstup:

4. Vícenásobné dědictví

Vícenásobné dědictví v java je typ dědičnosti, ve kterém má třída více než jednu nadřazenou třídu.

Například třída C získává vlastnosti jak třídy A, tak třídy B.

V Javě však lze vícenásobné dědičnosti dosáhnout pouze pomocí rozhraní.

Předpokládejme, že vícenásobné dědictví je implementováno jako jiné typy dědičnosti, chyba kompilace může nastat následovně.

Kód:

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

Zde nebude výstup zobrazen, protože obsahuje chybu kompilace.

Význam dědičnosti v Javě

  • Opětovné použití kódu: Dědičnost pomáhá při snižování přepisování kódu. tj. kód lze znovu použít jinými třídami a podřízená třída musí psát pouze své vlastní jedinečné vlastnosti. Tím se snižuje časová náročnost a složitost kódu.
  • Pro potlačení metody: Metoda, která je již přítomna v nadřazené třídě, je deklarována podřízenou třídou, pak je známá jako přepsání metody.
Poznámka: Předpokládejme, že pokud by třída neměla být znovu použita, lze použít klíčové slovo final.

Syntax:

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

V tomto případě bude generována chyba, která říká „Nelze zdědit od posledního A“.

Závěr

Dědičnost v Javě je vlastnost, kterou vlastnosti a chování třídy získává jiná třída, aby zajistila opakovatelnost kódu. V Javě existují různé typy dědičnosti, jako je Single dědičnost, víceúrovňová dědičnost, hierarchická dědičnost a vícenásobná dědičnost v Javě. V tomto dokumentu je uvedeno několik důležitých aspektů dědičnosti.

Doporučené články

Toto je průvodce po dědičnosti v Javě. Zde diskutujeme význam a různé typy dědičnosti v javě spolu se syntaxí, příklady a implementací kódu. Další informace naleznete také v následujících článcích

  1. JScrollPane v Javě
  2. Relace v PHP
  3. Třídění v Javě
  4. Co je Java Garbage Collector?
  5. Java Deployment Tools
  6. Převažující v Javě
  7. Dědičnost v PHP

Kategorie: