Abstract classes and interfaces allow for abstraction in object oriented programming. Abstract classes can contain both concrete and abstract methods, with the abstract methods requiring implementation in derived classes. Interfaces are fully abstract and can only contain abstract methods and properties, requiring any class implementing an interface to provide an implementation of its methods. Both abstract classes and interfaces enable security through abstraction and multiple inheritance by allowing classes to share common methods while still providing individual implementations.