Access Modifiers: Access modifiers determine which parts of a program can access certain variables or methods within a class. Examples include public (accessible to all), private (only accessible within the same class), protected (accessible within subclasses), etc.
Abstract Class: An abstract class cannot be instantiated but serves as a blueprint for other classes to inherit from. It may contain abstract methods (without implementation) as well as regular methods with implementation.
Interface: An interface is like a contract that defines a set of methods that implementing classes must provide. It allows for multiple inheritance by enabling a class to implement multiple interfaces.