Abstract classes in object-oriented programming can contain instance variables (fields), can have constructors (used by subclasses), and can extend another class (single inheritance). Therefore, all three statements A, B, and C are correct features of abstract classes.