Q1) Assuming all Editors expose the same public methods, I would definitely start with an interface. Note, however, that interface/abstract class is not an either-or proposition. It's quite common to use both. They serve two different but complementary roles. Also, note that extending an interface, extending a class, and implementing and interface are all IS-A relationships.
Q2&Q3) Yes, you can accomplish the same contract enforcement with a purely abstract class that you can with an interface. Note, however, that the primary job of an interface is to provide a definition of the public view of a purely abstract type, while the primary job of an abstract class is to provide partial implementation of an abstract type. The language designer chose (wisely, IMHO) to make those two distinct concepts at the language level. They wouldn't have had to, but I think it makes the language easier to understand, and I expect it makes writing compilers and JVMs easier as well. Also, with just abstract classes, you cannot declare yourself to be of multiple types. That is,
Java supports multiple inheritance of interface, but not of implementation. (Another wise decision.)