Mega Code Archive

 
Categories / C# / Class Interface
 

Casting Objects

using System;     public class CPU {   public string model;       public CPU(string model) {     this.model = model;   }       public void Start() {     Console.WriteLine(model + " started");   } }     public class Intel : CPU {   public bool convertible;       public Intel(string model, bool convertible) : base(model) {     this.convertible = convertible;   } }     public class AMD : CPU {   public bool sidecar;       public AMD(string model, bool sidecar) : base(model) {     this.sidecar = sidecar;   }       public void PullWheelie() {     Console.WriteLine(model + " pulling a wheelie!");   }     }         class Test {   public static void Main() {     Intel myIntel = new Intel("MR2", true);         // create a AMD object     AMD myAMD = new AMD("V-Rod", true);         // cast myAMD to CPU (upcast)     CPU myCPU2 = (CPU) myAMD;             // cast myCPU2 to AMD (downcast)     AMD myAMD2 = (AMD) myCPU2;         // myMotorCycle2 has access to all members of the AMD class     Console.WriteLine("myAMD2.model = " + myAMD2.model);     Console.WriteLine("myAMD2.sidecar = " + myAMD2.sidecar);     myAMD2.Start();     myAMD2.PullWheelie();   } }