In addition to what Mattias said, there is a real conceptual
difference between the two. An abstract class forms the base for an
"is a " relationship, while an interface is a role an object takes
on.
e.g., a door is a "WoodenObject", and it operates in the role of a
"Lockable" device. A window also takes on the same role, but is not
a WoodenObject.
You could use an interface where an abstract class is more appropriate
and make it work, but it would be confusing to others. Take a look
at the interfaces defined within .NET and you'll see that they are
roles, not base identities.