Junior — Middle
Is it possible to replace an abstract class without variables, containing only abstract methods, with an interface?
sobes.tech AI
Answer from AI
Yes, if an abstract class does not contain variables and only includes abstract methods, it can be replaced with an interface. In Java, interfaces are intended for declaring methods without implementation (before Java 8), and their main purpose is to define a contract.
Advantages of replacing:
- Interfaces support multiple inheritance, which provides greater flexibility.
- The code becomes cleaner and aligns with modern practices.
Example:
// Abstract class
public abstract class Animal {
public abstract void makeSound();
}
// Interface
public interface Animal {
void makeSound();
}
If in the future it becomes necessary to add a default implementation, Java 8 allows the use of default methods in interfaces.