C and D are incorrect because a method-local inner class cannot be made public (remember-you cannot mark any local variables as public), or static.
Read moreWhat is method-local inner class?
A class i.e., created inside a method , is called local inner class in java. Local Inner Classes are the inner classes that are defined inside a block. Generally, this block is a method body. Sometimes this block can be a for loop, or an if clause. Local Inner classes are not a member of any enclosing classes.
Read more