Шаг 33.
Язык программирования Java.
Наследование. Классы, суперклассы и подклассы. Окончание

На этом шаге мы рассмотрим пример наследования

Напишем пример использования наследования. В качестве примера будем использовать классы Employee и Manager.

Файл класса ManagerTest.

/*Класс для тестирования класса Manager*/
public class ManagerTest {
    public static void main(String[] args) {
        /*Создание менеджера*/
        Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 15);
        boss.setBonus(5000);

        /*Создание трех сотрудников, один из которых будет менеджер*/
        Employee[] staff = new Employee[3];

        /*Заполнение массив данными*/
        staff[0] = boss;
        staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
        staff[2] = new Employee("Tomy Tester", 40000, 1990, 3, 15);

        /*Вывод информацию о каждом сотруднике*/
        for (Employee e : staff) {
            System.out.println(e);
        }
    }
}

Файл класса Manager.

/*
  Manager наследуется от класса Employee. Различие его от класса Employee в поле bonus
*/
public class Manager extends Employee {
    private double bonus;
    /*Переопределим конструктор*/
    public Manager(String name, double salary, int year, int month, int day) {
        super(name, salary, year, month, day); /*Вызов конструктор родителя*/
        bonus = 0;
    }

    /*Функция для установки значения в поле bonus*/
    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
    /*Расчет новой зарплаты с учетом бонуса*/
    public double getSalary() {
        double baseSalary = super.getSalary();
        return baseSalary + bonus;
    }

    @Override
    public String toString() {
        return "name = " + getName() + ", salary = " + getSalary() +
                ", hireDay = " + getHireDay();
    }
}

Проект можно взять здесь.


Рис. 1. Результат выполнения программы

На следующем шаге мы рассмотрим предотвращение наследования

Предыдущий шаг Содержание Следующий шаг