>>915 を書き直すとこういう感じだろうか
public class Car
{
 private Engine engine;
 public Car(Engine engine)
 {
  // engineのインスタンス生成は外部で行い、
  // その参照をEngineインターフェースの変数として保持する
  // (渡されたクラスにEngineインターフェースが実装されているか
  //  どうかしか感知しない)
  this.engine = engine;
 }
 public void go()
 {
   // コンストラクタで渡されたEngineを使うので、
  // インスタンスの実装には依存しない
  // (実際に渡されるクラスで変更があっても、
  //  それがEngineインターフェースに関わらない部分なら影響がない)
  engine.start();
 }
}

あと、↓に従ってくれると、他の人からも読みやすい

インターフェイスの名前付けのガイドライン
https://msdn.microsoft.com/ja-jp/library/cc433279(v=vs.71).aspx
"インターフェイス名には、この型がインターフェイスであることを示すために、プリフィックス I を付けます。"

メソッドの名前付けのガイドライン
https://msdn.microsoft.com/ja-jp/library/cc433282(v=vs.71).aspx
"Pascal 形式を使用します。"