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
Recall & Review
beginner
What is an interface in Java?
An interface in Java is a blueprint that defines methods without implementations. Classes can implement interfaces to promise they provide those methods.
Click to reveal answer
beginner
How do you declare that a class implements an interface?
Use the keyword <code>implements</code> after the class name, followed by the interface name. For example: <code>class Dog implements Animal</code>.
Click to reveal answer
intermediate
Can a class implement multiple interfaces in Java?
Yes, a class can implement multiple interfaces by listing them separated by commas. For example: <code>class Robot implements Walkable, Talkable</code>.
Click to reveal answer
intermediate
What happens if a class does not implement all methods of an interface?
The class must be declared abstract, or else the compiler will give an error because it did not fulfill the interface contract.
Click to reveal answer
advanced
Why use interfaces instead of abstract classes?
Interfaces allow multiple inheritance of type, letting a class promise to provide many behaviors. Abstract classes are for shared code and single inheritance.
Click to reveal answer
Which keyword is used to make a class follow an interface in Java?
Ainherits
Bextends
Cimplements
Duses
✗ Incorrect
The keyword implements is used for a class to follow an interface.
If a class implements an interface, what must it do?
ANothing, methods are optional
BImplement all methods declared in the interface
CDeclare the class as abstract
DOnly implement some methods
✗ Incorrect
A class must implement all methods declared in the interface unless it is abstract.
Can a Java class implement more than one interface?
AYes, by listing interfaces separated by commas
BNo, only one interface is allowed
CYes, but only if interfaces extend each other
DNo, Java does not support interfaces
✗ Incorrect
Java allows multiple interfaces to be implemented by a class, separated by commas.
What is the main purpose of interfaces?
ATo store data fields
BTo create objects
CTo provide method implementations
DTo define a contract of methods a class must provide
✗ Incorrect
Interfaces define a contract of methods without implementations that classes promise to provide.
If a class does not implement all interface methods, what must it be declared as?
Aabstract
Bfinal
Cstatic
Dpublic
✗ Incorrect
The class must be declared abstract if it does not implement all interface methods.
Explain how to implement an interface in a Java class and what rules must be followed.
Think about the syntax and what the compiler expects.
You got /3 concepts.
Describe the difference between interfaces and abstract classes in Java.
Consider how Java supports multiple behaviors.
You got /3 concepts.
Practice
(1/5)
1. What keyword does a Java class use to follow an interface?
easy
A. uses
B. extends
C. inherits
D. implements
Solution
Step 1: Understand Java class and interface relationship
In Java, a class follows an interface by using a specific keyword to promise it will provide all methods declared in the interface.
Step 2: Identify the correct keyword
The keyword to make a class follow an interface is implements, not extends which is for classes inheriting other classes.
Final Answer:
implements -> Option D
Quick Check:
Class follows interface = implements [OK]
Hint: Remember: classes use implements for interfaces, extends for classes [OK]
Common Mistakes:
Using extends instead of implements for interfaces
Confusing inherits keyword which doesn't exist in Java
Using uses keyword which is invalid
2. Which of the following is the correct syntax to declare a class Car that implements interface Vehicle?
easy
A. class Car extends Vehicle {}
B. class Car implements Vehicle {}
C. interface Car implements Vehicle {}
D. class Car uses Vehicle {}
Solution
Step 1: Identify class and interface keywords
A class is declared with class, and interfaces with interface. Here, Car is a class, Vehicle is an interface.
Step 2: Use correct syntax for implementing interface
The class Car must use implements keyword to follow Vehicle interface. So class Car implements Vehicle {} is correct.
Final Answer:
class Car implements Vehicle {} -> Option B
Quick Check:
Class + implements + Interface = correct syntax [OK]
Hint: Class implements interface with 'implements' keyword [OK]
Common Mistakes:
Using extends instead of implements for interfaces
Declaring class as interface
Using invalid keyword uses
3. What will be the output of this code?
interface Printer {
void print();
}
class Document implements Printer {
public void print() {
System.out.println("Printing document");
}
}
public class Main {
public static void main(String[] args) {
Printer p = new Document();
p.print();
}
}
medium
A. Printing document
B. Compilation error: print() not implemented
C. Runtime error
D. No output
Solution
Step 1: Check if interface method is implemented
The interface Printer declares method print(). The class Document implements Printer and provides public void print() method, so no error.
Step 2: Trace main method execution
Main creates Printer reference p to new Document object and calls p.print(). This calls Document's print() which prints "Printing document".
Final Answer:
Printing document -> Option A
Quick Check:
Implemented method runs and prints output [OK]
Hint: Implemented interface methods run normally when called [OK]
Common Mistakes:
Forgetting to make print() public causes compile error
Assuming interface methods run automatically without implementation
Confusing runtime error with compile error
4. Identify the error in this code:
interface Animal {
void sound();
}
class Dog implements Animal {
void sound() {
System.out.println("Bark");
}
}
medium
A. No error, code is correct
B. Dog should extend Animal, not implement
C. Method sound() must be public in Dog class
D. Interface Animal cannot have methods
Solution
Step 1: Check method visibility in interface implementation
Interface methods are implicitly public. When implementing, the method must be declared public in the class.
Step 2: Identify method declaration in Dog class
Dog's sound() method has default (package-private) visibility, missing public keyword, causing compile error.
Final Answer:
Method sound() must be public in Dog class -> Option C
Quick Check:
Interface methods require public implementation [OK]
Hint: Interface methods must be public in implementing class [OK]
Common Mistakes:
Omitting public keyword on implemented methods
Using extends instead of implements for interfaces
Thinking interface methods can be private
5. Given interface Calculator with methods add(int a, int b) and subtract(int a, int b), which class correctly implements it to return the sum and difference respectively?
hard
A. class Calc implements Calculator {
public int add(int a, int b) { return a + b; }
public int subtract(int a, int b) { return a - b; }
}
B. class Calc implements Calculator {
int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }
}
C. class Calc extends Calculator {
public int add(int a, int b) { return a + b; }
public int subtract(int a, int b) { return a - b; }
}
D. class Calc implements Calculator {
public void add(int a, int b) { System.out.println(a + b); }
public void subtract(int a, int b) { System.out.println(a - b); }
}
Solution
Step 1: Check method signatures and visibility
Interface methods are public and return int. So implementing methods must be public and return int with same parameters.
Step 2: Analyze each option
class Calc implements Calculator {
public int add(int a, int b) { return a + b; }
public int subtract(int a, int b) { return a - b; }
} matches signatures exactly with public int return type. class Calc implements Calculator {
int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }
} misses public keyword. class Calc extends Calculator {
public int add(int a, int b) { return a + b; }
public int subtract(int a, int b) { return a - b; }
} uses extends which is invalid for interfaces. class Calc implements Calculator {
public void add(int a, int b) { System.out.println(a + b); }
public void subtract(int a, int b) { System.out.println(a - b); }
} changes return type to void, which is incorrect.
Final Answer:
class Calc implements Calculator {
public int add(int a, int b) { return a + b; }
public int subtract(int a, int b) { return a - b; }
} -> Option A
Quick Check:
Match method signatures exactly with public and return type [OK]
Hint: Implemented methods must match interface signatures exactly [OK]
Common Mistakes:
Omitting public keyword on methods
Using extends instead of implements for interfaces