Bird
Raised Fist0
Javaprogramming~10 mins

Static methods in interfaces in Java - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a static method in an interface.

Java
public interface Calculator {
    static int [1](int a, int b) {
        return a + b;
    }
}
Drag options to blanks, or click blank then click option'
Aadd
Bsum
Ccalculate
Dcompute
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using a non-descriptive method name.
Forgetting to declare the method as static.
2fill in blank
medium

Complete the code to call the static method from the interface.

Java
int result = Calculator.[1](5, 3);
Drag options to blanks, or click blank then click option'
Acompute
Badd
Csum
Dcalculate
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Trying to call the method on an instance.
Using a wrong method name.
3fill in blank
hard

Fix the error in the static method declaration inside the interface.

Java
public interface Printer {
    [1] void print(String message) {
        System.out.println(message);
    }
}
Drag options to blanks, or click blank then click option'
Adefault
Bprivate
Cstatic
Dpublic
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using 'default' instead of 'static'.
Omitting the 'static' keyword.
4fill in blank
hard

Fill both blanks to define and call a static method in an interface.

Java
public interface Utils {
    static String [1](String s) {
        return s.toUpperCase();
    }
}

String result = Utils.[2]("hello");
Drag options to blanks, or click blank then click option'
AtoUpperCase
Bconvert
Cuppercase
DmakeUpper
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using different names in declaration and call.
Using non-descriptive method names.
5fill in blank
hard

Fill all three blanks to create a static method in an interface that returns the square of a number and call it.

Java
public interface MathOps {
    static int [1](int n) {
        return n [2] n;
    }
}

int squared = MathOps.[3](4);
Drag options to blanks, or click blank then click option'
Asquare
B*
D+
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using '+' instead of '*' for multiplication.
Using different method names in declaration and call.

Practice

(1/5)
1. What is the correct way to call a static method calculate() defined inside an interface MathOps?
easy
A. MathOps.calculate()
B. new MathOps().calculate()
C. calculate()
D. MathOps obj = new MathOps(); obj.calculate()

Solution

  1. Step 1: Understand static method call in interfaces

    Static methods in interfaces are called using the interface name, not instances.
  2. Step 2: Analyze the options

    Only MathOps.calculate() correctly calls the static method. Creating instances or calling directly is invalid.
  3. Final Answer:

    MathOps.calculate() -> Option A
  4. Quick Check:

    Static method call = InterfaceName.method() [OK]
Hint: Call static interface methods with InterfaceName.method() [OK]
Common Mistakes:
  • Trying to call static method on an instance
  • Calling static method without interface name
  • Trying to instantiate an interface
2. Which of the following is the correct syntax to declare a static method printMessage inside an interface Logger?
easy
A. static void printMessage();
B. static void printMessage() { System.out.println("Hello"); }
C. public static void printMessage();
D. void static printMessage() { System.out.println("Hello"); }

Solution

  1. Step 1: Recall static method syntax in interfaces

    Static methods must have a body and use static keyword before return type.
  2. Step 2: Check each option

    Only static void printMessage() { System.out.println("Hello"); } correctly declares and defines the static method. Declarations without a body or with static after the return type are invalid.
  3. Final Answer:

    static void printMessage() { System.out.println("Hello"); } -> Option B
  4. Quick Check:

    Static method = static + return type + name + () + body [OK]
Hint: Static methods in interfaces need a body and static keyword first [OK]
Common Mistakes:
  • Omitting method body in static method
  • Placing static keyword after return type
  • Declaring static methods without body
3. What will be the output of the following code?
interface Helper {
    static String greet() {
        return "Hi!";
    }
}
public class Test {
    public static void main(String[] args) {
        System.out.println(Helper.greet());
    }
}
medium
A. Runtime error
B. Compile-time error
C. null
D. Hi!

Solution

  1. Step 1: Understand static method call in interface

    The static method greet() is called correctly using Helper.greet().
  2. Step 2: Predict output

    The method returns "Hi!" which is printed by System.out.println.
  3. Final Answer:

    Hi! -> Option D
  4. Quick Check:

    Static method returns "Hi!" printed [OK]
Hint: Static interface methods run when called by InterfaceName.method() [OK]
Common Mistakes:
  • Trying to call static method on instance
  • Expecting compile error due to interface method
  • Confusing static with default methods
4. Identify the error in the following code snippet:
interface Calculator {
    static int add(int a, int b) {
        return a + b;
    }
}

public class Demo {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        System.out.println(calc.add(5, 3));
    }
}
medium
A. Missing return statement in add()
B. Static method add() cannot be called on instance
C. Cannot instantiate interface Calculator
D. No error, code runs fine

Solution

  1. Step 1: Check interface instantiation

    Interfaces cannot be instantiated directly using new.
  2. Step 2: Analyze method call

    Static methods must be called using interface name, not instance. But the main error is instantiating interface.
  3. Final Answer:

    Cannot instantiate interface Calculator -> Option C
  4. Quick Check:

    Interfaces cannot be instantiated [OK]
Hint: Interfaces cannot be created with new keyword [OK]
Common Mistakes:
  • Trying to instantiate interface
  • Calling static method on instance
  • Ignoring compile errors on interface instantiation
5. Given the interface Utils with a static method isEven(int n) that returns true if n is even, how can you use this method inside a class NumberChecker to filter even numbers from a list List<Integer> nums using streams?
hard
A. nums.stream().filter(Utils::isEven).toList();
B. nums.stream().filter(n -> Utils.isEven()).toList();
C. nums.stream().filter(n -> isEven(n)).toList();
D. nums.stream().filter(n -> Utils.isEven(n)).collect();

Solution

  1. Step 1: Understand method reference syntax

    Static methods can be referenced as InterfaceName::methodName in streams.
  2. Step 2: Analyze options for correct syntax

    nums.stream().filter(Utils::isEven).toList(); uses method reference correctly. The lambda n -> Utils.isEven() misses argument n, n -> isEven(n) lacks interface qualification, and .collect() requires a collector.
  3. Final Answer:

    nums.stream().filter(Utils::isEven).toList(); -> Option A
  4. Quick Check:

    Use InterfaceName::staticMethod for stream filters [OK]
Hint: Use InterfaceName::methodName for static method references in streams [OK]
Common Mistakes:
  • Calling static method without argument in lambda
  • Using instance method syntax for static methods
  • Wrong terminal operation like collect() without collector