static void Main() { FileDataAccess fileDataAccess = new FileDataAccess(""); //implicit interface member invocation: calling members of interface through the variable of class //fileDataAccess.GetData(); //Console.WriteLine(fileDataAccess.Data); //fileDataAccess.Test(); GetandPrintData(fileDataAccess); }
//return type is interface (pure abstract class) static IDataAccess Create(int choice) { IDataAccess dataAccess = null; switch (choice) { case 1: dataAccess = new DatabaseDataAccess(); break; case 2: dataAccess = new FileDataAccess(); break; default: break; } return(dataAccess); }