Class Interface C#

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example8_5.cs illustrates deriving an
  interface from one interface
*/
using System;
// define the IDrivable interface
interface IDrivable
{
  // method declarations
  void Start();
  void Stop();
  // property declaration
  bool Started
  {
    get;
  }
}
// define the IMovable interface (derived from IDrivable)
interface IMovable : IDrivable
{
  // method declarations
  void Accelerate();
  void Brake();
}
// Car class implements the IMovable interface
class Car : IMovable
{
  // declare the underlying field used by the
  // Started property of the IDrivable interface
  private bool started = false;
  // implement the Start() method of the IDrivable interface
  public void Start()
  {
    Console.WriteLine("car started");
    started = true;
  }
  // implement the Stop() methodof the IDrivable interface
  public void Stop()
  {
    Console.WriteLine("car stopped");
    started = false;
  }
  // implement the Started property of the IDrivable interface
  public bool Started
  {
    get
    {
      return started;
    }
  }
  // implement the Accelerate() method of the IMovable interface
  public void Accelerate()
  {
    Console.WriteLine("car accelerating");
  }
  
  // implement the Brake() method of the IMovable interface
  public void Brake()
  {
    Console.WriteLine("car braking");
  }
}
public class Example8_5
{
  public static void Main()
  {
    // create a Car object
    Car myCar = new Car();
    // call myCar.Start()
    Console.WriteLine("Calling myCar.Start()");
    myCar.Start();
    // call myCar.Accelerate()
    Console.WriteLine("Calling myCar.Accelerate()");
    myCar.Accelerate();
  }
}