Challenge - 5 Problems
Interface Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
β Predict Output
intermediate2:00remaining
Output of interface method call
What is the output of this Java program that uses an interface and a class implementing it?
Java
interface Greet { String sayHello(); } class EnglishGreeting implements Greet { public String sayHello() { return "Hello!"; } } public class Main { public static void main(String[] args) { Greet greet = new EnglishGreeting(); System.out.println(greet.sayHello()); } }
Attempts:
2 left
π‘ Hint
Look at how the interface method is implemented and called.
β Incorrect
The class EnglishGreeting implements the interface Greet and overrides the sayHello method to return "Hello!". The main method creates an instance of EnglishGreeting and calls sayHello, printing "Hello!".
π§ Conceptual
intermediate1:30remaining
Interface method modifiers
Which of the following statements about methods declared in a Java interface is true?
Attempts:
2 left
π‘ Hint
Think about the default visibility and abstract nature of interface methods.
β Incorrect
By default, interface methods are public and abstract unless they are declared as default or static methods with a body. Private methods are allowed only with explicit private modifier (Java 9+), but not by default.
π§ Debug
advanced2:00remaining
Identify the compilation error in interface implementation
What error will this code produce when compiled?
Java
interface Calculator { int add(int a, int b); } class SimpleCalculator implements Calculator { public int add(int x, int y) { return x + y; } public int subtract(int a, int b) { return a - b; } } public class Main { public static void main(String[] args) { Calculator calc = new SimpleCalculator(); System.out.println(calc.add(5, 3)); } }
Attempts:
2 left
π‘ Hint
Check if the method signatures match between interface and class.
β Incorrect
The class SimpleCalculator correctly implements the add method from Calculator interface. The subtract method is extra and allowed. The program compiles and prints 8.
π Syntax
advanced1:30remaining
Correct interface declaration syntax
Which option shows the correct way to declare an interface with one method in Java?
Attempts:
2 left
π‘ Hint
Interface methods do not have a body unless default or static.
β Incorrect
In Java, interface methods are abstract by default and cannot have a body unless declared default or static. Option A declares an abstract method correctly without a body.
π Application
expert2:30remaining
Interface with multiple inheritance
Given these interfaces and classes, what will be the output when running the main method?
Java
interface A { default String message() { return "A"; } } interface B { default String message() { return "B"; } } class C implements A, B { public String message() { return A.super.message() + B.super.message(); } } public class Main { public static void main(String[] args) { C obj = new C(); System.out.println(obj.message()); } }
Attempts:
2 left
π‘ Hint
Look at how class C resolves the conflict by calling both interface methods explicitly.
β Incorrect
Class C overrides the message method and explicitly calls both A's and B's default methods using A.super.message() and B.super.message(), concatenating their results to "AB".