I thought a class is supposed to define, or give a blueprint, of attributes and methods for an object.  And then, an interface is to provide a set of methods, as a contract for its clients. (and so a class also gives an interface as well, because a class also define a set of methods).But say, if we have a class called Shape.  Now we add an interface to it, called Moveable.  Now we may have to add attributes to the class, such as velocity.  But interface is only about methods, then how would we think about adding attributes to the class due to interface?
If Class is to define attributes and methods, and Interface is to define (a set of) methods, then how to think of interface needing new attributes?
object oriented;interfaces;class