Advertisement
RenSafaray

Untitled

May 6th, 2024
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.05 KB | None | 0 0
  1. import com.example.Software; // Импорт класса Software из пакета com.example
  2. import com.example.OperatingSystem; // Импорт класса OperatingSystem из пакета com.example
  3. import com.example.FreeOperatingSystem; // Импорт класса FreeOperatingSystem из пакета com.example
  4. import com.example.PaidOperatingSystem; // Импорт класса PaidOperatingSystem из пакета com.example
  5. import com.example.Application; // Импорт класса Application из пакета com.example
  6. import com.example.MobileOperatingSystem; // Импорт класса MobileOperatingSystem из пакета com.example
  7. import com.example.ServerOperatingSystem; // Импорт класса ServerOperatingSystem из пакета com.example
  8. import com.example.UtilitySoftware; // Импорт класса UtilitySoftware из пакета com.example
  9.  
  10. import java.util.ArrayList; // Импорт класса ArrayList из пакета java.util для работы со списками
  11. import java.util.List; // Импорт интерфейса List из пакета java.util для работы со списками
  12.  
  13. public class Main { // Определение класса Main с публичным доступом
  14.     public static void main(String[] args) { // Определение главного метода main, точка входа в программу
  15.         // Создание экземпляров классов
  16.         FreeOperatingSystem freeOS = new FreeOperatingSystem("Ubuntu", "20.04", "Linux"); // Создание объекта freeOS класса FreeOperatingSystem
  17.         PaidOperatingSystem paidOS = new PaidOperatingSystem("Windows", "10", "NT", 199.99); // Создание объекта paidOS класса PaidOperatingSystem
  18.         Application application = new Application("LibreOffice", "7.1.4", "The Document Foundation"); // Создание объекта application класса Application
  19.         MobileOperatingSystem mobileOS = new MobileOperatingSystem("Android", "11", "Linux", "Google Play"); // Создание объекта mobileOS класса MobileOperatingSystem
  20.         ServerOperatingSystem serverOS = new ServerOperatingSystem("Ubuntu Server", "20.04", "Linux", false); // Создание объекта serverOS класса ServerOperatingSystem
  21.         UtilitySoftware utilitySoftware = new UtilitySoftware("CCleaner", "5.78", "Piriform", "Optimization"); // Создание объекта utilitySoftware класса UtilitySoftware
  22.  
  23.         // Создание списка объектов типа Software
  24.         List<Software> softwareList = new ArrayList<>(); // Создание списка softwareList для хранения объектов типа Software
  25.         softwareList.add(freeOS); // Добавление объекта freeOS в список softwareList
  26.         softwareList.add(paidOS); // Добавление объекта paidOS в список softwareList
  27.         softwareList.add(application); // Добавление объекта application в список softwareList
  28.         softwareList.add(mobileOS); // Добавление объекта mobileOS в список softwareList
  29.         softwareList.add(serverOS); // Добавление объекта serverOS в список softwareList
  30.         softwareList.add(utilitySoftware); // Добавление объекта utilitySoftware в список softwareList
  31.  
  32.         // Демонстрация полиморфного поведения
  33.         for (Software software : softwareList) { // Цикл for-each для перебора элементов списка softwareList
  34.             System.out.println("Name: " + software.getName()); // Вывод на экран имени объекта
  35.             System.out.println("Version: " + software.getVersion()); // Вывод на экран версии объекта
  36.             System.out.println("-------------------------------"); // Вывод разделительной линии
  37.  
  38.             // Пример проверки типа объекта и вызова специфичных методов
  39.             if (software instanceof PaidOperatingSystem) { // Проверка, является ли объект экземпляром класса PaidOperatingSystem
  40.                 PaidOperatingSystem paidSoftware = (PaidOperatingSystem) software; // Приведение типа объекта к PaidOperatingSystem
  41.                 System.out.println("Price: $" + paidSoftware.getPrice()); // Вывод на экран цены объекта
  42.             } else if (software instanceof MobileOperatingSystem) { // Проверка, является ли объект экземпляром класса MobileOperatingSystem
  43.                 MobileOperatingSystem mobileSoftware = (MobileOperatingSystem) software; // Приведение типа объекта к MobileOperatingSystem
  44.                 System.out.println("App Store: " + mobileSoftware.getAppStore()); // Вывод на экран названия магазина приложений
  45.             } else if (software instanceof ServerOperatingSystem) {
  46.                 ServerOperatingSystem serverSoftware = (ServerOperatingSystem) software; // Приведение типа объекта к ServerOperatingSystem
  47.                 System.out.println("GUI Supported: " + serverSoftware.isGuiSupported()); // Вывод на экран информации о поддержке графического интерфейса
  48.             } else if (software instanceof UtilitySoftware) { // Проверка, является ли объект экземпляром класса UtilitySoftware
  49.                 UtilitySoftware utility = (UtilitySoftware) software; // Приведение типа объекта к UtilitySoftware
  50.                 System.out.println("Utility Type: " + utility.getUtilityType()); // Вывод на экран типа утилитного программного обеспечения
  51.             }
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement