The key technical differences between an abstract class and an interface are:
- Abstract classes can have constants, members, method stubs and defined methods, whereas interfaces can only have consts and methods stubs.
- Methods and members of an abstract class can be defined with any visibility, whereas all methods of an interface must be defined as public.