Method-local inner classes CAN be marked abstract - they are defined inside a method like any other class and support abstract modifiers. They cannot be static (static inner classes are only class-level) and cannot be public (only default and private access are allowed for method-local classes).