Casting Objects : Object Cast « Class Interface « C# / C Sharp






Casting Objects

  

using System;

public class MotorVehicle {

    public string model;

    public MotorVehicle(string model) {
        this.model = model;
    }

    public void Start() {
        Console.WriteLine(model + " started");
    }

}

public class Product : MotorVehicle {

    public bool convertible;

    public Product(string model, bool convertible) :
        base(model) {
        this.convertible = convertible;
    }

}


public class Motorcycle : MotorVehicle {

    public bool sidecar;

    public Motorcycle(string model, bool sidecar) :
        base(model) {
        this.sidecar = sidecar;
    }

    public void PullWheelie() {
        Console.WriteLine(model + " pulling a wheelie!");
    }

}
class MainClass {

    public static void Main() {
        Product myProduct = new Product("MR2", true);

        MotorVehicle myMotorVehicle = (MotorVehicle)myProduct;

        Console.WriteLine("myMotorVehicle.model = " + myMotorVehicle.model);
        myMotorVehicle.Start();
        Motorcycle myMotorcycle = new Motorcycle("V-Rod", true);

        MotorVehicle myMotorVehicle2 = (MotorVehicle)myMotorcycle;

        Console.WriteLine("myMotorVehicle2.model =" + myMotorVehicle2.model);
        myMotorVehicle2.Start();
        Motorcycle myMotorcycle2 = (Motorcycle)myMotorVehicle2;

        Console.WriteLine("myMotorcycle2.model = " + myMotorcycle2.model);
        Console.WriteLine("myMotorcycle2.sidecar = " + myMotorcycle2.sidecar);
        myMotorcycle2.Start();
        myMotorcycle2.PullWheelie();
    }
}

   
  








Related examples in the same category

1.Downcast will fail.
2.This code raises an exception at run time because of an invalid cast
3.Casting objects: upcastCasting objects: upcast
4.Casting objects: downcastCasting objects: downcast
5.Variables of type object can accept values of any data type