An abstract class is a base class that cannot be instantiated and is meant to be inherited from by subclasses. It contains at least one pure virtual function with no implementation. An interface in C++ is implemented as an abstract class containing only pure virtual functions, describing behaviors without implementing them. Abstract classes allow subclasses to implement or override functionality, while interfaces only define functionality. A class can extend one abstract class but multiple interfaces.