I guess following link will be useful for you.
http://letschattechnology.com/interface-vs-abstract-classes/
the basic logical difference is you create abstract class when there is a relation between two classes that will inherit the abstract class and you create interface for the classes which are not related to each other but do have some common functionality.