What is the difference between Abstract and Interface?

PARAMETERSABSTRACTINTERFACE
What is it?Super base class for all sub classes.It is the skeleton. It contains the method and variable definition.
How are the methods and variables defined?The methods and variables can be public, protected and private.The methods and variables are always public. It is explicitly defined in the beginning like below.
INTERFACE zif_interface1 PUBLIC.
How is the instance created?An instance is created through the sub class.
DATA lr_super_abstract_class TYPE REF TO zcl_super_class.
lr_super_abstract_class=
NEW
zcl_sub_class ( ).
Abstract classes cannot be instantiated.
An instance is created through the implemented class.
In the class ‘ZCL_CLASS1’, Interface ‘ZIF_INTERFACE1’ is implemented.
Data lr_interface TYPE REF TO zif_interface1.
DATA lr_interface = NEW zcl_class1().
Interfaces cannot be instantiated.
How are the methods implemented?The methods can be implemented in the same super base abstract class except the abstract methods.The methods can be implemented only in the implementing class. So here the methods are implicitly defined as abstract.
How is it inherited?Sub class instance is created, which inherits the methods and variables of the super abstract class. In the sub class definition, it is explicitly inherited with the keyword ‘INHERITING FROM’ CLASS zcl_sub_class DEFINITION PUBLIC INHERITING FROM zcl_super_class.The class implements the interface. Interfaces can only be mention in the public section.
CLASS zcl_super_class DEFINITION PUBLIC ABSTRACT.
PUBLIC SECTION.
INTERFACES zif_interface1.
Should all methods be implemented? Is there any excuse?All abstract methods must be redefined and implemented in the sub class. Otherwise it gives an error in the immediate subclass inheriting the super class. It cannot be implemented in the super class.All methods from the interfaces must be implemented in the implementing class. This implicitly means that all the methods in the interface are abstract. Otherwise a warning will pop up during syntax check of the implementing class.
Syntax of Method Implementation?METHOD m_method1.
ENDMETHOD.
METHOD zif_interface1~method2.
ENDMETHOD.
We can als use aliases in method definition.
ALIASES method2 FOR zif_interface1~method2.
So in this case method implementation is similar to normal method.
METHOD method2.
ENDMETHOD.

Note : Multiple Inheritance is not allowed in SAP ABAP. SO the subclass can have only one super class. Two sub classes can have the same super class. The multiple inheritance is achieved by implementing more than one interface in the class definition.

Below picture depicts a classic example of Abstract and interface concept

The parent will always provide all the essentials for the child. But the parent will not take back anything from the child. They don’t create the wealth for themselves. In such a perspective, the Abstract base super class cannot be instantiated. only the base class can instantiate. The child must also inherit the good values given by the parents. Abstract super class will implement the methods which can be inherited by the child sub class.

Each and every parent performs the common functionalities such as getting groceries, paying school fees, planning education and cooking food. The common functions can be grouped together. Similary the Interface provides the common functions which can be implemented by every class. Interface has only the definition. The parents will be able to implement these functions based on their financial capacity. So each parent super class will implement their own methods.