Java для начинающих: Наследование классов

Наследование – ключевое понятие объектно-ориентированного программирования. Оно позволяет создавать новые классы (дочерние классы или наследники) на основе существующих (родительских классов). Дочерний класс наследует все поля, методы и конструкторы родительского класса, а также может иметь собственные поля и методы.

Пример наследования: классы Person и Student

Рассмотрим пример. Предположим, у нас есть класс Person, содержащий поля height (рост), name (имя) и методы для работы с ними.

Создадим класс Student, наследник класса Person. После имени класса Student используем ключевое слово extends:

class Student extends Person {
    // ...
}

Теперь класс Student наследует все поля и методы класса Person. Добавим в класс Student поле course (курс обучения):

class Student extends Person {
    int course;
}

Добавление поля course в класс Person было бы нелогично, поскольку это свойство специфично для студентов. Наследование позволяет создавать специализированные классы, добавляя только необходимые поля и методы.

Доступ к полям и методам родительского класса

Для доступа к полям и методам родительского класса Person внутри класса Student используется ключевое слово super:

class Student extends Person {
    int course;

    void tell() {
        System.out.println("Name: " + super.name);
        System.out.println("Height: " + super.height);
        System.out.println("Course: " + this.course);
    }
}

Метод tell() выводит имя, рост студента и его курс. Обращение к name и height осуществляется через super, указывающее на поля родительского класса.

Конструкторы и наследование

Класс Student наследует конструктор по умолчанию из класса Person. Создадим собственный конструктор для Student, используя super() для вызова конструктора родительского класса:

class Student extends Person {
    int course;

    Student(String name, int height, int course) {
        super(name, height);
        this.course = course;
    }
}

Конструктор Student принимает имя, рост и курс, вызывая конструктор Person для инициализации name и height, затем инициализирует course. Ключевое слово this указывает на переменные текущего класса.

Создание и использование объектов

Создадим объекты класса Student:

Student freshman = new Student("Viktor", 76, 2);
Student anotherStudent = new Student("Another", 180, 4);

System.out.println(freshman.name);
System.out.println(freshman.height);
System.out.println(freshman.course);

freshman.tell();
anotherStudent.tell();

Этот код создает двух студентов, используя созданный конструктор. Вызывается метод tell() для вывода информации о каждом студенте.

Наследование – мощный инструмент объектно-ориентированного программирования, позволяющий создавать иерархию классов и повторно использовать код. Понимание принципов наследования позволяет создавать более структурированный, понятный и эффективный код.

Что будем искать? Например,программа