Method-local inner classes are defined within a method body. They can be marked as abstract or final. However, they cannot have access modifiers like public, private, or protected because their scope is strictly limited to the method, nor can they be static as they are tied to an instance.