illustrates inheritance

image_pdfimage_print

   

/*
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();

  }

}