public static void Main(string[] args) { Frutas manza = new Manzanas("Apple", 1.7, "roja"); // como manzanas es una clase de Frutas , todobien no pasa nada // Frutas pepino = new Vegetales(); // no se puede hacer, vegetales no tiene nada que ver con frutas, estan al mismo nivel Object esta = new Peras(); // Manzanas miratu = (Manzanas)esta; // no se puede pasar una pera a ser manzana asi sean iguales y hermanas // Peras miratu = (Peras)esta; este sirve pero tambien se puede usar as para castear Peras miratu = esta as Peras; Vegetales veggie = new Vegetales(); Console.WriteLine("mi objeto es una {0}", manza.Kind); veggie.Nombre = "tomate"; Console.WriteLine("mi objeto es un {0}", veggie.getNombre()); Console.WriteLine("mi objeto {0} es de tipo {1}", manza.Kind, manza.GetType()); // CASTENADO if (manza is Object) { Console.WriteLine("manza es un hijo remoto de Object, todos son hijos de Object que ejemplo tan malo"); } if (esta is Vegetales) { Console.WriteLine("esta es un hijo de vegetales asi sea declarado como Object"); } if (miratu is Vegetales) { Console.WriteLine("mi objeto copiado de vegetales necesita que esta tenga un casteo externo a Vegetales para poder funcionar"); } }
public static void Main(string[] args) { Manzanas Man1 = new Manzanas("manzana Royal", 0.50, "red"); Peras Pera1 = new Peras("Pera Chilena", 0.9, "green"); Console.WriteLine("mi pera vale {0} y es de color {1}", Pera1.Cost, Pera1.Color); }