Java — Which declarations are valid inside an interface definition?

Difficulty: Easy

Correct Answer: public double methoda();

Explanation:


Introduction / Context:
Prior to Java 8, interface methods are implicitly public and abstract, with no method bodies. From Java 8, static and default methods are allowed but must include bodies. This question focuses on declaration validity.



Given Data / Assumptions:

  • No method bodies are shown in the options.
  • We are assessing validity of the declarations as written.


Concept / Approach:
Inside interfaces, a method declared without a body must be public abstract. Writing “public double methoda();” is valid (abstract implied). “final” cannot be applied to abstract methods. “protected” is not allowed in interfaces. “static” methods require a body since Java 8.



Step-by-Step Solution:

Option A: Valid — a standard abstract method signature in an interface.Option B: Invalid — final contradicts abstract behavior.Option C: Invalid — static in an interface must include a method body (since Java 8); declaration without body is not valid.Option D: Invalid — interface methods are implicitly public; protected is not permitted.


Verification / Alternative check:
Attempt compilation in a Java compiler; only A compiles (pre–Java 8 assumptions and still fine post–Java 8 without bodies).



Why Other Options Are Wrong:
They violate access/modifier rules for interface methods or omit required bodies.



Common Pitfalls:
Assuming interface methods behave like class methods with flexible modifiers; they do not.



Final Answer:
public double methoda();

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion