Classes
Java Interfaces
Defining Interfaces
Java interfaces define contracts with default methods since Java 8.
Introduction to Java Interfaces
Java interfaces are a core concept of the Java programming language, providing a way to achieve abstraction and multiple inheritance. An interface in Java is similar to a class, but it can only contain abstract methods and final fields. With the introduction of Java 8, interfaces can also have default methods.
Defining an Interface
To define an interface in Java, use the interface
keyword. An interface can contain abstract methods that must be implemented by any class that chooses to implement the interface.
Here's a basic example of a Java interface:
Implementing an Interface
A class implements an interface using the implements
keyword. When a class implements an interface, it must provide concrete implementations for all of the interface's methods.
Here's how you can implement the Animal
interface:
Default Methods in Interfaces
Since Java 8, interfaces can include default methods. These methods have a body and are not required to be implemented by classes that implement the interface. Default methods allow developers to add new methods to interfaces without breaking existing implementations.
Here's how you can add a default method to an interface:
Multiple Inheritance with Interfaces
Java does not support multiple inheritance with classes, but interfaces provide a way to achieve this. A class can implement multiple interfaces, thereby inheriting the abstract methods from all the interfaces.
Here's an example of a class implementing multiple interfaces:
Summary
Java interfaces are a powerful feature that allows for abstraction and multiple inheritance. With the addition of default methods in Java 8, interfaces became even more versatile, enabling developers to expand interfaces without affecting existing implementations. Understanding and utilizing interfaces can significantly enhance your Java programming skills.
Classes
- Classes
- Interfaces
- Inheritance
- Abstract Classes
- Enums
- Records
- Annotations
- Previous
- Classes
- Next
- Inheritance