In Java, an interface is an abstract type used to specify the behaviour of a class. One of the most important rules when working with interfaces is understanding how methods are declared and implemented. In this article, we are going to learn the interface methods in detail.
Note: Interface methods are always public and abstract.
Example:
void methodOne();
public void methodOne();
abstract void methodOne();
public abstract void methodOne();
- public: To make this method available for every implementation class.
- abstract: The Implementation class is responsible for providing the implementation.
Why Every Method Declared in an Interface is Public?
When a class agrees to follow an interface, its method is available to any class that implements that interface, and that's why interface methods are public by default. This ensures that any class implementing the interface can access those methods.
Why Every Method Declared in an Interface is Abstract?
In Java, an interface only tells what a method should do, it does not know how to do it. The classes that implement the interface need to provide the implementation for that method, and that's why methods are abstract by default.
Note: We can not use the following modifiers with abstract methods in an interface. Using these will cause compile-time error.
- private
- protected
- final
- static
- synchronized
- native
- strictfp
When a class implements an interface, the method must be declared public in the class because we can not assign a weaker access modifier to a method that is already public in the interface.
Example:
Java
// Demonstrating the working
// of interface
interface A {
// implicitly public and abstract
void Method1();
}
class B implements A {
public void Method1() {
System.out.println("GeeksforGeeks");
}
}
class C {
public static void main(String[] args) {
B b = new B();
b.Method1();
}
}
If we define a weaker access modifier then we will get a compilation error and the below example demonstrates the same.
Example:
Java
interface A {
// implicitly public and abstract
void Method1();
}
class B implements A {
// Compilation error
void Method1() {
System.out.println("GeeksforGeeks");
}
}
class C {
public static void main(String[] args) {
B b = new B();
b.Method1();
}
}
Output:
Types of Methods in a Java Interface
1. Abstract Methods: An abstract method in Java is a method that has no body and the actual code is provided by the class that inherits it.
Example:
Java
// Demonstrating abstract method
interface Animal {
// abstract method
void sound();
}
2. Default Methods (Java 8+): These methods have a body and provide default code inside an interface.
Example:
Java
// Demonstrating Default Methods
interface Animal {
default void eat() {
System.out.println("This animal eats food.");
}
}
3. Static Methods (Java 8+): These methods are written inside the interface and can be called directly using the interface name not with an object.
Example:
Java
// Demonstrating static methods
interface Animal {
static void info() {
System.out.println("Animals are living beings.");
}
}
// Call the method like this
Animal.info();
4. Private Methods (Java 9+): These methods reduce code duplication in static and default methods.
Example:
Java
// Demonsntrating Private method
interface Animal {
private void helper() {
System.out.println("Helper method inside interface.");
}
}
It can only be called from within default/static methods inside the interface.
Similar Reads
Instance Methods in Java Instance Methods are the group of codes that performs a particular task. Sometimes the program grows in size, and we want to separate the logic of the main method from other methods. A method is a function written inside the class. Since java is an object-oriented programming language, we need to wr
5 min read
Java Methods Java Methods are blocks of code that perform a specific task. A method allows us to reuse code, improving both efficiency and organization. All methods in Java must belong to a class. Methods are similar to functions and expose the behavior of objects.Example: Java program to demonstrate how to crea
8 min read
Java Extension Methods In object-oriented computer programming, an extension method is a method added to an object after the original object was compiled. Extension methods are features of some object-oriented programming languages. There is no syntactic difference between calling an extension method and calling a method
4 min read
Intermediate Methods of Stream in Java The Stream API is used to process collections of objects. A stream is a sequence of objects that supports various methods which can be pipelined to produce the desired result. The method provided by the stream are broadly categorized as Intermediate MethodsTerminal Methods Here, we will be discussin
6 min read
Month plus() method in Java The plus() method is a built-in method of the Month ENUM which is used to get a month after the current month by a specific number of months. That is, this method returns the month after the specified number of months from this month. Syntax: public Month plus(long months) Parameters: This method ac
1 min read
Interfaces and Polymorphism in Java Java language is one of the most popular languages among all programming languages. There are several advantages of using the java programming language, whether for security purposes or building large distribution projects. One of the advantages of using JA is that Java tries to connect every concep
5 min read
Evolution of Interface in Java In Java, interfaces define a contract for classes without specifying how the methods are implemented. With time, Java has introduced major enhancements or we can say evolution of interfaces to make them more powerful. So, in this article, we will explore the evolution of interfaces in Java from Java
3 min read
Introduction to Java Java is a high-level, object-oriented programming language developed by Sun Microsystems in 1995. It is platform-independent, which means we can write code once and run it anywhere using the Java Virtual Machine (JVM). Java is mostly used for building desktop applications, web applications, Android
4 min read
Static Method vs Instance Method in Java In Java, methods are mainly divided into two parts based on how they are connected to a class, which are the static method and the Instance method. The main difference between static and instance methods is listed below:Static method: A static method is a part of the class and can be called without
4 min read
run() Method in Java Thread The run() method is available in the thread class constructed using a separate Runnable object. Otherwise, this method does nothing and returns. We can call the run() method multiple times. The run() method can be called in two ways which are as follows:Using the start() method.Using the run() metho
3 min read