using System; public class AccountClient{ public static void Main(){ BankAccount ba1, ba2 = new BankAccount("John", 250.0M, 0.01); LotteryAccount la1, la2 = new LotteryAccount("Bent", 100.0M); ba1 = la2; // upcasting - OK // la1 = ba2; // downcasting - Illegal // discovered at compile time // la1 = (LotteryAccount)ba2; // downcasting - Illegal // discovered at run time la1 = (LotteryAccount)ba1; // downcasting - OK // ba1 already refers to a LotteryAccount } }