Java >> Java tutorial >  >> Java

Java Downcasting | Java Upcasting | Støbning af objekter &forskel med eksempler

Hvad er Java-casting?

En casting betyder i programmeringsverdenen at tage et objekt og "vende det til" en anden objekttype uden at ændre dets værdier. Når man taler om casting i Java, kan det gøre på Variables og Object. I Object er der yderligere to typer. Den ene er Java Downcasting og den anden er Java Upcasting.

Definition af typecasting i én linje – "Typecasting konverterer en datatype til en anden."

I denne tutorial lærer vi om både objektstøbning og hvordan de er relateret til arv. Ser også forskellen mellem down-casting og Up-casting i Java.

Før du lærer om det, anbefalede vi at læse denne 2 tutorial først

  • Java-arven | Arvetyper
  • En Java-polymorfisme | Definition | Typer

Castingvilkår:

Her er koden, som vi vil betragte som eksempel for hver casting i java.

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");
    }
    public void bark() {
        System.out.println("Dog bark");
    }
}
  • Dyreklasse – SuperClass
  • Hundeklasse – Underklasse

Syntaks:

Syntaksen for java-casting-objekter.

ClassObject objectName = (ClassObject) ObjectToConvert;

Java-downcasting

Når man konverterer en underklasse til en superklasse kaldes det en Upcasting i Java. Nedad til arvetræet.

Lad os se et eksempel. I eksempel kaldes det downcasting, hvis klassen Animal ønsker at påberåbe sig metoder fra klassen Dog. Her vil vi have en Dog bark()-metode, men compileren vil ikke tillade det.

 Animal animal = new Dog();
        animal.bark();

Se fejlen nedenfor, når du udfører direkte adgangsmetode.

For at gøre det på den rigtige måde er at lave downcasting som det komplette eksempel nedenfor.

Animal animal = new Dog();
((Dog) animal).bark();
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");
    }
    public void bark() {
        System.out.println("Dog bark");
    }
}

public class PolymorphismExample {
    public static void main(String arg[]) {
        //Creating object
        Animal animal = new Dog();
        ((Dog) animal).bark();
    }
}

Output: Hunde gøen

Hvorfor er Downcasting?

Downcasting i java bruges, når vi ønsker at få adgang til specifik adfærd af en undertype.

Java-upcasting

Og når man konverterer en superklassetype til en underklassetype kaldes det en downcasting i Java.

Lad os se eksemplet med Java Upcasting - undertype til supertypen. Til det caster vi Hund klasse til Dyr type. Der er ingen objektændring kun reference ændret.

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

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

public class PolymorphismExample {
    public static void main(String arg[]) {
        //Creating object
        Animal animal = (Animal) new Dog();
        animal.sound();
        animal.msg();
    }
}

Output: Hund siger:Bue Bue
Superklasse

Hvorfor bruge en Upcasting?

Generelt er det ikke nødvendigt, men når du vil have en aftale med den eneste superklasse, kan du bruge det som eksempel.

//Creating object
Animal animal = (Animal) new Dog();
animal.sound();
animal.msg(); // super calss methods

Spørgsmål:Hvad er brugen af ​​upcasting og downcasting i java?

Svar: Generalisering eller UpCasting er et fænomen, hvor en underklasse bliver bedt om til en superklasse og dermed bliver mere generel. Generalisering skal udvides eller opgraderes.

Specialisering eller DownCasting er et fænomen, hvor en superklasse er indsnævret til en underklasse. Specialisering skal indsnævres eller nedkastes.

Sidebemærkning :Denne vejledning lærer du om casting objekter i Java, for variabel casting vil du sende endnu et selvstudie.


Java tag