На этом шаге мы рассмотрим пример наследования
Напишем пример использования наследования. В качестве примера будем использовать классы 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. Результат выполнения программы
На следующем шаге мы рассмотрим предотвращение наследования