Beginning Visual C# Exercises - Chapter 09
1. Sealed classes can not serve as a base class (no inheritance)
2. The constructor is declared private preventing object instances of the class
3. The class acts as a container for static members allowing global access to each property,
method and field without bounds of object encapsulation
Once the namespace is set up, static members of the class may be called throughout the code
as when invoking methods of the Console class from the System namespace
4. using System;
namespace Vehicles
{
public interface iPassengerCarrier
{
}
public interface iHeavyLoadCarrier
{
}
public class VehicleType
{
}
public class Train : VehicleType
{
}
public class PassengerTrain : Train, iPassengerCarrier
{
}
public class FreightTrain : Train, iHeavyLoadCarrier
{
}
// Note: 424DoubleBogey is an illegal C# name
public class DoubleBogey : Train
{
}
public class Car : VehicleType
{
}
public class Compact : Car, iPassengerCarrier
{
}
public class Pickup : Car, iPassengerCarrier, iHeavyLoadCarrier
{
}
public class SUV : Car, iPassengerCarrier
{
}
}
5. using System;
using Vehicles;
namespace Traffic
{
class Class1
{
public static int census;
private static void AddPassenger(object accomodation)
{
try
{
// Cast a vehicle class into the passenger interface
iPassengerCarrier transport = checked((iPassengerCarrier)accomodation);
// Only vehicle objects derived from passenger interface arrive here
Console.WriteLine(transport.ToString() + " will carry " +
Convert.ToString(census) + " passengers.");
}
catch (System.InvalidCastException)
{
// The vehicles without passenger interface, so ignore
}
catch (Exception e)
{
// Report an unanticipated exception
Console.WriteLine(e.ToString());
}
}
[STAThread]
public static void Main(string[] args)
{
Compact carCompact = new Compact();
census = 5;
AddPassenger(carCompact);
FreightTrain boxCar = new FreightTrain();
census = 15;
AddPassenger(boxCar);
PassengerTrain railCar = new PassengerTrain();
census = 120;
AddPassenger(railCar);
SUV miniVan = new SUV();
census = 8;
AddPassenger(miniVan);
Pickup farmHaul = new Pickup();
census = 3;
AddPassenger(farmHaul);
DoubleBogey monsterCar = new DoubleBogey();
census = 1000;
AddPassenger(monsterCar);
}
}
}
|