What is the function of the 'extends' keyword in Java?

Understanding the 'extends' Keyword in Java

The extends keyword in Java plays a crucial role in object-oriented programming, specifically in relation to inheritance and the process of creating subclasses from existing classes. The correct answer to the aforementioned question reveals that extends is employed to inherit properties and methods from a superclass.

When a class 'A' is said to extend class 'B', it means class 'A' is a subclass (or child class) of class 'B' (the superclass or parent class). All the properties (variables) and methods of the superclass are available to the subclass, thereby promoting code reusability and efficient design.

Practical Example

Consider an example where there's a general Animal class which has properties like age and weight, and also has methods like eat() and move(). Now, if we want to create a more specific class like Dog, instead of rewriting all these properties and methods, we can make Dog extend Animal. The Dog class can naturally inherit properties and methods from Animal, and we can also add specific features like breed.

public class Animal {
  int age;
  double weight;

  void eat() {
    // Eating behavior
  }

  void move() {
    // Moving behavior
  }

  // Other general methods and properties
}

public class Dog extends Animal {
  String breed;

  void bark() {
    // Barking behavior
  }

  // Other specific methods and properties
}

In this way, the Dog class now has age, weight, breed properties, and eat(), move(), and bark() methods.

Important Note

While using the extends keyword in Java, it's important to note that Java supports only single inheritance, which means a subclass can have only one superclass. This design choice helps to avoid issues like the diamond problem in multiple inheritance.

In addition, it should be noted that a subclass cannot inherit the superclass's private members (methods or variables). These are only accessible within the class in which they are declared.

In conclusion, extends is a powerful keyword in Java, allowing for the efficient creation of related classes using inheritance, which leads to cleaner, more reusable code. Ensure to apply this key concept appropriately in your Java programming practice.

Do you find this helpful?