Declaring and Implementing an Interface

suggest change

Declaration of an interface using the interface keyword:

public interface Animal {
    String getSound(); // Interface methods are public by default
}

Override Annotation

@Override
public String getSound() {
    // Code goes here...
}

This forces the compiler to check that we are overriding and prevents the program from defining a new method or messing up the method signature.

Interfaces are implemented using the implements keyword.

public class Cat implements Animal {

    @Override 
    public String getSound() {
        return "meow";
    }
}

public class Dog implements Animal {

    @Override
    public String getSound() {
        return "woof";
    }
}

In the example, classes Cat and Dog must define the getSound() method as methods of an interface are inherently abstract (with the exception of default methods).

Using the interfaces

Animal cat = new Cat();
Animal dog = new Dog();

System.out.println(cat.getSound()); // prints "meow"
System.out.println(dog.getSound()); // prints "woof"

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents