Sobes.tech
Junior — Middle

Explique ce qu'est la conversion de types dans les langages orientés objet, en utilisant des exemples de UpCast et DownCast

sobes.tech IA

Réponse de l'IA

Dans les langages orientés objet, comme C#, le cast de type est la conversion d’un objet d’un type à un autre type lié dans la hiérarchie d’héritage.

UpCast est la conversion d’une classe dérivée vers une classe de base. Elle est toujours sûre et ne nécessite pas d’indication explicite, car la classe dérivée contient tous les membres de la classe de base.

class Animal {}
class Dog : Animal {}

Dog dog = new Dog();
Animal animal = dog; // UpCast — conversion implicite

DownCast est la conversion d’une classe de base vers une classe dérivée. Elle peut être dangereuse, car l’objet de base n’est pas nécessairement une instance de la classe dérivée. Elle nécessite généralement une conversion explicite et une vérification.

Animal animal = new Dog();
Dog dog = (Dog)animal; // DownCast — conversion explicite

Animal anotherAnimal = new Animal();
Dog anotherDog = anotherAnimal as Dog; // Renvoie null si la conversion est impossible

Ainsi, UpCast est utilisé pour généraliser, et DownCast pour préciser le type avec une vérification de sécurité.