Home >Java >javaTutorial >Implements vs. Extends: When to Use Which in Object-Oriented Programming?

Implements vs. Extends: When to Use Which in Object-Oriented Programming?

Barbara Streisand
Barbara StreisandOriginal
2024-11-29 04:24:14179browse

Implements vs. Extends: When to Use Which in Object-Oriented Programming?

Implements vs. Extends: A Comprehensive Guide

In object-oriented programming, understanding the distinction between "implements" and "extends" is crucial.

Implements

"Implements" is used when a class fulfills the contract specified by an interface. An interface declares a set of abstract methods (methods without implementation) that a class must implement. By implementing an interface, a class agrees to provide concrete implementations of all its methods.

For instance:

interface MyInterface {
    void doAction();
    int doThis(int number);
}

class MyClass implements MyInterface {
    @Override
    public void doAction() {
        // Implement the method
    }

    @Override
    public int doThis(int number) {
        // Implement the method
    }
}

Extends

"Extends" is used when a class inherits from another class. The child class (also known as a subclass) gains access to the parent class's (also known as a superclass) fields and methods. Subclasses can also override or extend the parent class's behavior.

For instance:

class SuperClass {
    private int num;

    public int getNum() {
        return num;
    }
}

class SubClass extends SuperClass {
    @Override
    public int getNum() {
        return num + 1; // Overriding the parent's implementation
    }
}

Key Differences

  • Interface vs. Class: "Implements" is used with interfaces, which only declare methods but do not implement them. "Extends" is used with classes, which can have both methods and fields.
  • Multiple Inheritance: Java does not support multiple inheritance for classes. However, it allows multiple interfaces to be implemented, providing a way to achieve similar functionality.
  • Polymorphism: Implemented interfaces provide a level of polymorphism, allowing objects of different classes that implement the same interface to be treated as if they were of the same type.
  • @Override Annotation: The @Override annotation is used in overridden method implementations in subclasses but not in methods implementing an interface.

When to Use

  • Implements: When a class fulfills the requirements of an existing interface and provides concrete implementations for its abstract methods.
  • Extends: When a class inherits from an existing class and wants to reuse its functionality, possibly overriding or extending its behavior.

Understanding these concepts is essential for effective object-oriented design and code reusability.

The above is the detailed content of Implements vs. Extends: When to Use Which in Object-Oriented Programming?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn