public static void Main(string[] args) { Dad obj = new Son(31, 32); Console.WriteLine("Boom"); Son obj3 = obj is Son ? (Son)obj : null; Son obj2 = obj as Son; }
static void Main(string[] args) { Father son = new Son(); son.DoWork(); son.DoVirtualWork(); son.DoVirtualAll(); Console.WriteLine("-------------"); Father aGrandson = new Grandson(); aGrandson.DoWork(); aGrandson.DoVirtualWork(); aGrandson.DoVirtualAll(); /*output: * Father.DoWork() Father.DoVirtualWork() Son.DoVirtualAll() ------------- Father.DoWork() Father.DoVirtualWork() Son.DoVirtualAll() Grandson.DoVirtualAll() */ //Son son = new Son(); //son.DoWork(); //son.DoVirtualWork(); //son.DoVirtualAll(); //Console.WriteLine("----------------"); //Grandson aGrandson = new Grandson(); //aGrandson.DoWork(); //aGrandson.DoVirtualWork(); //aGrandson.DoVirtualAll(); /*output: * Son.DoWork() Father.DoVirtualWork() Son.DoVirtualWork() Son.DoVirtualAll() ---------------- Son.DoWork() Father.DoVirtualWork() Son.DoVirtualWork() Grandson.DoVirtualWork() Son.DoVirtualAll() Grandson.DoVirtualAll() * */ Console.Read(); }