With Java 8's "default method" feature, any abstract class without direct or inherited field should be converted into an interface.
public abstract class Car { public abstract void start(Environment c); public void stop(Environment c) { c.freeze(this); } }
public interface Car { public void start(Environment c); public default void stop(Environment c) { c.freeze(this); } }