/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example7_1.cs illustrates inheritance */ using System; // declare the MotorVehicle class (the base class) class MotorVehicle { // declare the fields public string make; public string model; // define a constructor public MotorVehicle(string make, string model) { this.make = make; this.model = model; } // define a method public void Start() { Console.WriteLine(model + " started"); } } // declare the Car class (derived from the MotorVehicle base class) class Car : MotorVehicle { // declare an additional field public bool convertible; // define a constructor public Car(string make, string model, bool convertible) : base(make, model) // calls the base class constructor { this.convertible = convertible; } } // declare the Motorcycle class (derived from the MotorVehicle base class) class Motorcycle : MotorVehicle { // declare an additional field public bool sidecar; // define a constructor public Motorcycle(string make, string model, bool sidecar) : base(make, model) // calls the base class constructor { this.sidecar = sidecar; } // define an additional method public void PullWheelie() { Console.WriteLine(model + " pulling a wheelie!"); } } public class Example7_1 { public static void Main() { // declare a Car object, display the object's fields, and call the // Start() method Car myCar = new Car("Toyota", "MR2", true); Console.WriteLine("myCar.make = " + myCar.make); Console.WriteLine("myCar.model = " + myCar.model); Console.WriteLine("myCar.convertible = " + myCar.convertible); myCar.Start(); // declare a Motorcycle object, display the object's fields, and call the // Start() method Motorcycle myMotorcycle = new Motorcycle("Harley-Davidson", "V-Rod", false); Console.WriteLine("myMotorcycle.make = " + myMotorcycle.make); Console.WriteLine("myMotorcycle.model = " + myMotorcycle.model); Console.WriteLine("myMotorcycle.sidecar = " + myMotorcycle.sidecar); myMotorcycle.Start(); myMotorcycle.PullWheelie(); } }