Java >> Java tutorial >  >> Java

Java polymorfisme | Definition | Typer | Eksempler

Hvad er definitionen af ​​Java-polymorfi?

Polymorfismemidler en mange-form, det afledt af 2 græske ord:Det første ord "poly" betyder mange og en anden "morfer" betyder former . Så med at bruge Java-polymorfi  kan gøre på et objekt i mange former.

Polymorfi mulig, når klasser er relateret til hinanden ved er-et forhold (arv).

Før du starter, skal du først lære om Java-arv. I Inheritance arver vi en egenskab af en anden klasse, hvor egenskab betyder metoder, variabler osv.

Fordelen ved Java-polymorfi  har tilladelse til at bruge disse Inherit-metoder og udfører en anden handling med mindre indsats uden at påvirke de gamle koder for klasse og grænseflade.

Polymorfi i Java er et af OOPs søjlekoncepter. I denne tutorial ser vi allerede, hvad polymorfi er, så nu ser vi på typer af forskellige eksempler.

Eksempler på Java-polymorfi

Lad os komme til praktisk praksis. Vi har et dyr klasse med en sound() metode. Hvilke underklasser kan være til dyreklassen? Naturligvis som et rigtigt objekt som - Hund, katte, rotter, ænder osv. dyr.

Som vi ved, har hvert dyr en anden lyd, så her vil hunde-, kat-, and-klasser have sin egen lyd()-metodeimplementering. Se nedenstående eksempel på Java-polymorfi og hvordan de enkelte metoder kan ændre sig i mange former med ensartede mønstre.

class Animal {
    public void sound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    public void sound() {
        System.out.println("Dog says: Bow Bow");
    }
}

class Cat extends Animal {
    public void sound() {
        System.out.println("Cat says: meow meow");
    }
}

class Duck extends Animal {
    public void sound() {
        System.out.println("Duck says: quack quack");
    }
}

public class PolymorphismExample {
    public static void main(String arg[]) {
        //Creating objects
        Animal animal = new Animal(); //Animal object
        Animal dog = new Dog(); //Dog object
        Animal cat = new Cat(); //Cat object
        Animal duck = new Duck(); // Duck object

        animal.sound();
        dog.sound();
        cat.sound();
        duck.sound();
    }
}

Output: Dyret giver lyd fra sig
Hund siger:Bue Bue
Kat siger:miav miav
And siger:kvak kvak

Typer af polymorfi i Java

Polymorfi i Java har to typer, du vil finde et andet navn for det mange steder.

  • Kompileringstidspolymorfi (statisk binding) – Java-metodeoverbelastning er et eksempel på statisk polymorfi
  • Runtime polymorphism (dynamisk binding) – Java Method Overriding er et eksempel på dynamisk polymorfi.

Kompileringstidspolymorfi

Java-metodeoverbelastning kaldes Compile Time eller Static eller Compile time Polymorphism.

Vi har en komplet dybdevejledning om det, følg dette link – Java Overloading tutorial

Se på et eksempel og kode for nu.

public class MethodOverloading {
    static int add(int a, int b) {
        return a + b;
    }
 
    static int add(int a, int b, int c) {
        return a + b + c;
    }
    public static void main(String[] args) {
        System.out.println(MethodOverloading.add(2, 16));
        System.out.println(MethodOverloading.add(78, 1, 9));
    }
}

Output: 18
88

Runtime Polymorphism

Tilsidesættelse af Java-metoder kaldes Runtime eller Dynamic Polymorphism.

Her er en komplet tutorial baseret på det, følg linket – Java Override Tutorial

Lad os se det enkle eksempel og kode.

//base class
class Employee {
    //method
    void salary() {
        System.out.println("All Employee Salary Range is 10-50k");
    }
}
 
//subclass
 
class Manager extends Employee{
    @Override
    void salary(){
        System.out.println("Manager Salary  is 40k");
    }
}
 
public class MethodOverriding {
 
    public static void main(String arg[]){
 
        // creating base (parent) class object
        Employee employee = new Employee();
        employee.salary();
 
        // creating sub (child) class object
        Employee employee1 = new Manager();
        employee1.salary();
 
    }
}

Output: Alle medarbejderes lønintervaller er 10-50k
Lederlønnen er 40k

Kommenter, hvis der kræves nogen tvivl, forslag og eksempler til denne øvelse. Følg det øverste link i selvstudiet for bedre forståelse, og der er mange regler for at opnå polymorfi.


Java tag