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
Why do we use interfaces instead of classes?
Interfaces allow different classes to share common methods without forcing a class hierarchy. This helps in designing flexible and reusable code.
Click to reveal answer
intermediate
How do interfaces help with multiple inheritance in Java?
Java does not allow multiple inheritance with classes, but a class can implement many interfaces. This lets a class have multiple behaviors from different sources.
Click to reveal answer
intermediate
What role do interfaces play in loose coupling?
Interfaces help separate what a class does from how it does it. This means parts of a program can change without affecting others, making the code easier to maintain.
Click to reveal answer
beginner
Give a real-life example of why interfaces are useful.
Think of a remote control interface for different devices like TV or music player. The remote uses the same buttons (methods) but each device responds differently. Interfaces let us design this common control.
Click to reveal answer
What is the main purpose of an interface in Java?
ATo define methods without implementations
BTo store data variables
CTo create objects directly
DTo inherit multiple classes
✗ Incorrect
Interfaces define method signatures without implementations, so classes can implement them.
Which of the following is true about interfaces?
AA class can extend multiple interfaces
BInterfaces can be instantiated
CInterfaces can have constructors
DA class can implement multiple interfaces
✗ Incorrect
Classes can implement many interfaces, but cannot extend multiple classes.
Interfaces separate what methods do from how they do it, reducing dependencies.
Why can't Java use multiple inheritance with classes?
ABecause interfaces are faster
BTo avoid complexity and ambiguity
CBecause Java does not support inheritance
DBecause classes cannot have methods
✗ Incorrect
Multiple inheritance with classes can cause confusion, so Java uses interfaces instead.
Which statement best describes an interface?
AA contract that classes agree to follow
BA class with full method implementations
CA data storage object
DA tool to create objects
✗ Incorrect
Interfaces act as contracts specifying methods classes must implement.
Explain why interfaces are important in Java programming.
Think about how interfaces help classes work together without being tightly connected.
You got /4 concepts.
Describe a real-world example that shows the usefulness of interfaces.
Consider devices controlled by the same remote but working differently.
You got /4 concepts.
Practice
(1/5)
1. Why do Java programmers use interfaces? interface defines methods but no implementation. What is the main reason to use them?
easy
A. To ensure different classes share common method names and can work together
B. To store data like variables and constants
C. To create objects directly from the interface
D. To replace classes completely
Solution
Step 1: Understand what interfaces define
Interfaces declare methods without code, so classes must implement those methods.
Step 2: Recognize the purpose of interfaces
They allow different classes to share method names, enabling them to work together flexibly.
Final Answer:
To ensure different classes share common method names and can work together -> Option A
Quick Check:
Interfaces share method names = A [OK]
Hint: Interfaces define method rules for classes to follow [OK]
Common Mistakes:
Thinking interfaces store data
Believing interfaces create objects
Confusing interfaces with classes
2. Which of the following is the correct way to declare an interface in Java?
easy
A. interface Vehicle { void move(); }
B. class Vehicle { void move(); }
C. interface Vehicle() { void move(); }
D. interface Vehicle { void move() {} }
Solution
Step 1: Check interface declaration syntax
Interfaces use the keyword interface followed by name and method signatures without bodies.
Step 2: Identify correct method declaration
Methods in interfaces have no body, so void move(); is correct.
Final Answer:
interface Vehicle { void move(); } -> Option A
Quick Check:
Interface syntax = A [OK]
Hint: Interface methods have no body, just signatures [OK]
Common Mistakes:
Adding parentheses after interface name
Defining method bodies inside interface
Using class keyword instead of interface
3. What will be the output of this Java code?
interface Animal { void sound(); } class Dog implements Animal { public void sound() { System.out.println("Bark"); } } public class Test { public static void main(String[] args) { Animal a = new Dog(); a.sound(); } }
medium
A. Compilation error
B. sound
C. Bark
D. No output
Solution
Step 1: Understand interface implementation
Class Dog implements Animal and provides the sound() method printing "Bark".
Step 2: Trace method call
Variable a is Animal type but refers to Dog object, so a.sound() calls Dog's method printing "Bark".
Final Answer:
Bark -> Option C
Quick Check:
Interface method call runs Dog's method = C [OK]
Hint: Interface reference calls implemented method in class [OK]
Common Mistakes:
Expecting interface method to print 'sound'
Thinking code won't compile without method body in interface
Confusing output with method name
4. Find the error in this code snippet:
interface Shape { void draw(); } class Circle implements Shape { void draw() { System.out.println("Circle drawn"); } }
medium
A. Interface cannot have methods
B. No error, code is correct
C. Circle class should be abstract
D. Method draw() must be public in Circle class
Solution
Step 1: Check method visibility rules
Interface methods are implicitly public, so implementing methods must be public too.
Step 2: Identify method visibility in Circle
Method draw() in Circle has default (package-private) visibility, missing public.
Final Answer:
Method draw() must be public in Circle class -> Option D
Quick Check:
Interface methods require public implementation = B [OK]
Hint: Implement interface methods as public always [OK]
Common Mistakes:
Ignoring method visibility mismatch
Thinking interface methods can be private
Assuming no error if method is package-private
5. You want to design a system where multiple unrelated classes like Printer, Scanner, and Camera can all be "Connectable" to a computer. Which approach best uses interfaces to achieve this?
hard
A. Use abstract classes for Printer, Scanner, and Camera instead of interfaces
B. Create a Connectable interface with a connect() method, and have each class implement it
C. Add connect() method directly in each class without interface
D. Make Printer, Scanner, and Camera extend a common class Connectable
Solution
Step 1: Identify the need for shared behavior
All classes need a common method connect() to work with the computer.
Step 2: Use interface for unrelated classes
Interfaces allow unrelated classes to share method names without forcing inheritance.
Step 3: Evaluate options
Create a Connectable interface with a connect() method, and have each class implement it uses interface to define connect(), letting each class implement it as needed.
Final Answer:
Create a Connectable interface with a connect() method, and have each class implement it -> Option B
Quick Check:
Interfaces enable shared methods for unrelated classes = D [OK]
Hint: Use interfaces to share methods across unrelated classes [OK]
Common Mistakes:
Trying to use class inheritance for unrelated classes