Когда вы делаете:
GasBrake s = new GasBrake();
или
IgnitionKey k = new IgnitionKey();
это новый созданный объект, имеющий собственную выделенную память и собственное состояние, полностью изолированное от другого и не имеющее общего состояния.
Поскольку у вас создаются два совершенно разных объекта, у них обоих будет совершенно разное состояние, они не могут иметь общее состояние. Для имитации того, что вы хотите, вам нужно использовать один объект, но с другим типом ссылки:
GasBrake s = new GasBrake(); // now just one object created
IgnitionKey k = s; // we reference to it using the parent class type
k.Change(); // change it's value
Console.WriteLine(s.Speed); // same value will be printed
Теперь вы увидите то же значение, т.е. 10 .