extends vs implements in Java

Posted on Mar 24, 2022

Learn the differences between extends and implements and when to use each


The extends and implements keywords are part of the inheritance feature in Java.

The extends keyword is used whenever you want to extend a class or an interface as shown below:

The code below shows how the two keywords work:

// for classes
class Dog {}

class Poodle extends Dog {}

// for interfaces 
interface Cat {}

interface Tabby extends Cat {}

A Java class can only extend one class, while an interface can extend multiple interfaces:

class Dog {}
class Animal {}
class Poodle extends Dog, Animal {} // ERROR

interface Cat {}
interface Feline {}
interface Tabby extends Cat, Feline {} // OK

The extends keyword can only be used between the same reference type:

  • A class with a class
  • An interface with one or more interfaces

When you want to inherit an interface to a class, you need to use the implements keyword:

interface Cat {}

class Tom implements Cat {}

You can implement one or more interfaces to a class, but you can’t extend more than one class.

Now you’ve learned the differences between extends and implements keywords. Nice work! 😉

Level up your programming skills

I'm sending out an occasional email with the latest programming tutorials. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.