Java Extends: Inheritance and Object-Oriented Programming
Java extends - это ключевое слово в языке программирования Java, которое используется для создания наследуемых классов.
Наследование - это механизм объектно-ориентированного программирования, который позволяет создавать новый класс (наследник) путем наследования свойств и методов существующего класса (родителя). Родительский класс называется суперклассом, а наследник - подклассом.
Для создания наследуемого класса в Java используется ключевое слово extends. Наследуемый класс наследует все свойства и методы родительского класса, а также может расширять их новыми свойствами и методами.
Пример:
Рассмотрим простой пример наследования в Java. Предположим, у нас есть суперкласс Animal (животное), а также два подкласса Dog (собака) и Cat (кошка), которые наследуют свойства и методы суперкласса.
Суперкласс Animal:
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println(name + " is eating.");
}
public void sleep() {
System.out.println(name + " is sleeping.");
}
}
Подкласс Dog:
public class Dog extends Animal {
private String breed;
public Dog(String name, int age, String breed) {
super(name, age);
this.breed = breed;
}
public void bark() {
System.out.println(name + " is barking.");
}
}
Подкласс Cat:
public class Cat extends Animal {
private String color;
public Cat(String name, int age, String color) {
super(name, age);
this.color = color;
}
public void purr() {
System.out.println(name + " is purring.");
}
}
В данном примере классы Dog и Cat наследуют свойства и методы из суперкласса Animal, а также расширяют его новыми свойствами и методами. Например, класс Dog имеет новое свойство breed и метод bark, который не был определен в суперклассе. Класс Cat также имеет новое свойство color и метод purr.
Использование наследования и ключевого слова extends позволяет избежать дублирования кода и повторного использования уже написанного функционала. В результате создается более структурированный и легко поддерживаемый код.