Java >> Tutoriel Java >  >> Java

Downcast Java | Conversion ascendante Java | Lancer des objets et différence avec des exemples

Qu'est-ce que la diffusion Java ?

Un casting signifie dans le monde de la programmation prendre un objet et le "transformer" en un autre type d'objet sans changer ses valeurs. Quand on parle de casting en Java, cela peut être fait sur des variables et des objets. Dans Object, il existe deux autres types. L'un est Java Downcasting et le second est Java Upcasting.

Définition de la conversion de type en une seule ligne :"La conversion de type consiste à convertir un type de données en un autre."

Dans ce didacticiel, nous découvrirons à la fois la diffusion d'objets et leur lien avec l'héritage. Vous cherchez également la différence entre le down-casting et le up-casting en Java.

Avant d'en savoir plus, nous vous recommandons de lire d'abord ces 2 tutoriels

  • L'héritage Java | Types d'héritage
  • Un polymorphisme Java | Définition | Genre

Conditions de diffusion :

Voici le code dont nous allons considérer l'exemple pour chaque casting en 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");
    }
}
  • Classe animale – Superclasse
  • Classe Chien – Sous-Classe

Syntaxe :

La syntaxe des objets de casting java.

ClassObject objectName = (ClassObject) ObjectToConvert;

Downcast Java

Lors de la conversion d'une sous-classe en un type de superclasse, on parle d'Upcasting en Java. Descendez jusqu'à l'arbre d'héritage.

Voyons un exemple. Dans Example, si la classe Animal veut invoquer des méthodes de la classe Dog, on parle de downcasting. Ici, nous voulons une méthode Dog bark(), mais le compilateur ne l'autorise pas.

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

Voir l'erreur ci-dessous lors de la méthode d'accès direct.

Pour le faire de la bonne manière, il faut faire du downcasting comme ci-dessous l'exemple complet.

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

Sortie : Chien qui aboie

Pourquoi la diffusion vers le bas ?

Downcasting en java utilisé lorsque nous voulons accéder à des comportements spécifiques d'un sous-type.

Upcasting Java

Et lors de la conversion d'un type de superclasse en un type de sous-classe, on appelle un downcasting en Java.

Voyons l'exemple de Java Upcasting - sous-type au supertype. Pour cela, nous castons Chien classe à Animal taper. Il n'y a pas de changement d'objet, seule la référence a changé.

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

Sortie : Le chien dit :Bow Bow
Superclasse

Pourquoi utiliser un Upcasting ?

Généralement, ce n'est pas nécessaire, mais lorsque vous voulez un accord avec la seule superclasse, vous pouvez l'utiliser comme exemple.

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

Question :À quoi servent la conversion ascendante et descendante en Java ?

Réponses : La généralisation ou UpCasting est un phénomène où une sous-classe est invitée à une super-classe, et devient donc plus générale. La généralisation doit être élargie ou améliorée.

La spécialisation ou Downcasting est un phénomène où une superclasse est réduite à une sous-classe. La spécialisation doit être restreinte ou réduite.

Remarque  :Ce didacticiel vous apprendra à caster des objets en Java, pour le casting variable publiera un autre didacticiel.


Balise Java