// Клас першого рівня public class LevelOne { // Поля private String discipline; private int numberOfStudents; private int duration; // Конструктор public LevelOne(String discipline, int numberOfStudents, int duration) { this.discipline = discipline; this.numberOfStudents = numberOfStudents; this.duration = duration; } // Функція, яка визначає "якість" об'єкта public double calculateQuality() { return (double) numberOfStudents / duration; } // Висновок інформації про об'єкт public void displayInfo() { System.out.println("Discipline: " + discipline); System.out.println("Number of students: " + numberOfStudents); System.out.println("Duration: " + duration); System.out.println("Quality: " + calculateQuality()); } } // Клас другого рівня public class LevelTwo extends LevelOne { // Додаткове поле private int P; // Конструктор public LevelTwo(String discipline, int numberOfStudents, int duration, int P) { super(discipline, numberOfStudents, duration); this.P = P; } // Перекривання функції якості класу 1-го рівня @Override public double calculateQuality() { double Q = super.calculateQuality(); return Q * (100 - P) / 100; } } // Клас для демонстрації роботи public class Main { public static void main(String[] args) { // Створення об'єкта класу 1-го рівня LevelOne obj1 = new LevelOne("Math", 50, 2); obj1.displayInfo(); // Створення об'єкта класу 2-го рівня LevelTwo obj2 = new LevelTwo("Physics", 40, 3, 20); obj2.displayInfo(); } }