Java pärimine (koos näidetega)

Selles õpetuses õpime näite abil Java pärimist ja selle tüüpe.

Pärimine on OOP üks põhijooni, mis võimaldab meil olemasolevast klassist uue klassi luua.

Loodav uus klass on tuntud kui alaklass (laps või tuletatud klass) ja olemasolev klass, kust lapseklass on tuletatud, on tuntud kui üleklass (vanem või põhiklass).

extendsMärksõna on kasutatud sooritada pärandi Java. Näiteks,

 class Animal ( // methods and fields ) // use of extends keyword // to perform inheritance class Dog extends Animal ( // methods and fields of Animal // methods and fields of Dog )

Ülaltoodud näites luuakse koerte klass, loovutades meetodid ja väljad loomade klassist.

Siin on koer alaklass ja loom superklass.

Näide 1: Java pärimine

 class Animal ( // field and method of the parent class String name; public void eat() ( System.out.println("I can eat"); ) ) // inherit from Animal class Dog extends Animal ( // new method in subclass public void display() ( System.out.println("My name is " + name); ) ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog labrador = new Dog(); // access field of superclass labrador.name = "Rohu"; labrador.display(); // call method of superclass // using object of subclass labrador.eat(); ) )

Väljund

 Minu nimi on Rohu, ma võin süüa

Ülaltoodud näites oleme tuletanud superklassist Animal alamklassikoera. Pange tähele avaldusi,

 labrador.name = "Rohu"; labrador.eat();

Siin on labrador koera objekt. Kuid nimetage ja eat()kuuluge loomaklassi.

Kuna koer pärib põllu ja meetodi loomalt, siis pääseme väljale ja meetodile juurde koera objekti kasutades.

Java pärandi juurutamine

on-suhe

Javas on pärimine is-a- suhe. See tähendab, et me kasutame pärimist ainult siis, kui kahe klassi vahel on is-seos. Näiteks,

  • Auto on sõiduk
  • Apelsin on puu
  • Kirurg on arst
  • Koer on loom

Siin Auto võib pärida Sõiduki , Orange võib pärida Fruit , ja nii edasi.

Java pärilikkuse alistamise meetod

In Näide 1 , me näeme objekti alamklassi pääseb meetod ülemklassi.

Kui aga sama meetod on olemas nii super- kui alaklassis, siis mis juhtub?

Sellisel juhul alistab alamklassi meetod superklassis oleva meetodi. Seda kontseptsiooni nimetatakse Java-s ülimuslikuks.

Näide 2: Java pärandis ülimuslik meetod

 class Animal ( // method in the superclass public void eat() ( System.out.println("I can eat"); ) ) // Dog inherits Animal class Dog extends Animal ( // overriding the eat() method @Override public void eat() ( System.out.println("I eat dog food"); ) // new method in subclass public void bark() ( System.out.println("I can bark"); ) ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog labrador = new Dog(); // call the eat() method labrador.eat(); labrador.bark(); ) )

Väljund

 Söön koeratoitu, mida saan haukuda

Ülaltoodud näites on eat()meetod olemas nii superklassilises loomas kui ka alaklassi koeras.

Siin oleme loonud koera labradori.

Nüüd, kui helistame eat()objekti labradoriks, kutsutakse Koera meetodit. Seda seetõttu, et tuletatud klassi sees olev meetod alistab baasklassi meetodi.

Seda nimetatakse meetodi ületamiseks. Lisateabe saamiseks külastage Java-meetodi alistamist.

Märkus . Oleme @Overridemärkuse abil kompilaatorile öelnud, et me meetodi ületame. Annotatsioon ei ole siiski kohustuslik. Lisateabe saamiseks külastage Java Annotations.

super märksõna Java pärandis

Varem nägime, et sama meetod alamklassis alistab meetodi superklassis.

Sellises olukorras kasutatakse supermärksõna vanemateklassi meetodi kutsumiseks lasteklassi meetodist.

Näide 3: super märksõna pärandis

 class Animal ( // method in the superclass public void eat() ( System.out.println("I can eat"); ) ) // Dog inherits Animal class Dog extends Animal ( // overriding the eat() method @Override public void eat() ( // call method of superclass super.eat(); System.out.println("I eat dog food"); ) // new method in subclass public void bark() ( System.out.println("I can bark"); ) ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog labrador = new Dog(); // call the eat() method labrador.eat(); labrador.bark(); ) )

Väljund

 Ma võin süüa Ma söön koera toitu, mida ma saan haukuda 

Ülaltoodud näites on eat()meetod olemas nii loomade kui ka sellest tuletatud klassi Koer. Pange tähele avaldust,

 super.eat();

Siin kasutatakse supermärksõna eat()superklassis esineva meetodi kutsumiseks .

Samuti võime supermärksõna abil kutsuda alamklassi konstruktorist superklassi konstruktori. Lisateabe saamiseks külastage Java super märksõna .

kaitstud pärandiliikmed

Kui klassis on Java protectedväljad ja meetodid, on need väljad ja meetodid juurdepääsetavad klassi alamklassist.

Example 4: protected Members in Inheritance

 class Animal ( protected String name; protected void display() ( System.out.println("I am an animal."); ) ) class Dog extends Animal ( public void getInfo() ( System.out.println("My name is " + name); ) ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog labrador = new Dog(); // access protected field and method // using the object of subclass labrador.name = "Rocky"; labrador.display(); labrador.getInfo(); ) )

Output

 I am an animal. My name is Rocky

In the above example, we have created a class named Animal. The class includes a protected field: name and a method: display().

We have inherited the Dog class inherits Animal. Notice the statement,

 labrador.name = "Rocky"; labrador.display();

Here, we are able to access the protected field and method of the superclass using the labrador object of the subclass.

Why use inheritance?

  • The most important use of inheritance in Java is code reusability. The code that is present in the parent class can be directly used by the child class.
  • Method overriding is also known as runtime polymorphism. Hence, we can achieve Polymorphism in Java with the help of inheritance.

Types of inheritance

There are five types of inheritance.

1. Single Inheritance

Ühe pärandi korral ulatub üks alamklass ühest üleklassist. Näiteks,

Java ühekordne pärand

2. Mitmetasandiline pärand

Mitmetasandilise pärandi korral ulatub alamklass üleklassist ja siis toimib sama alaklass teise klassi superklassina. Näiteks,

Java mitmetasandiline pärand

3. Hierarhiline pärand

Hierarhilises pärimises ulatuvad ühest superklassist mitu alamklassi. Näiteks,

Java hierarhiline pärand

4. Mitu pärandit

Mitme pärandi korral ulatub üks alamklass mitmest superklassist. Näiteks,

Java mitmekordne pärand

Märkus . Java ei toeta mitut pärimist. Liideste abil saame aga saavutada mitmekordse pärimise. Lisateabe saamiseks külastage Java-rakendust.

5. Hübriidne pärand

Hübriidne pärimine on kombinatsioon kahest või enamast pärandiliigist. Näiteks,

Java hübriidne pärand

Siin oleme hübriidse pärandi moodustamiseks ühendanud hierarhilise ja mitmekordse pärandi.

Huvitavad Artiklid...