Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.04.2020
Сообщений: 12

Задача реализовать интерфейс и его наследников

15.12.2023, 07:36. Показов 2792. Ответов 42
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Создайте интерфейс FastFood(), его наследников Sandwich и Hamburger.
Реализуйте методы приготовления и методы, позволяющим вывести
на экран информацию о товаре (состав фастфуда), а также определить, соответствует ли она сроку годности на текущую дату.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2023, 07:36
Ответы с готовыми решениями:

Реализовать интерфейс IDictionary с его методами
Здравствуйте. Помогите, пожалуйста, показать на примере, как работает интерфейс IDictionary с основными его методами.

Реализовать интерфейс, описывающий нахождение площади квадрата по его стороне
Реализовать интерфейс, описывающий нахождение площади квадрата по его стороне.

Создать функциональный интерфейс Pow с методом pow() для возведения числа в степень. Реализовать его через lambda
Создать функциональный интерфейс Pow с методом pow(int number, int pow), который принимает 2 параметра: 1 - число которое возводится в...

42
230 / 199 / 71
Регистрация: 21.10.2016
Сообщений: 449
24.12.2023, 14:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от krvsa Посмотреть сообщение
Если опять же вернуться к ингредиентам...
Я бы использовал коллекции, например:
Java
1
2
3
4
public class Humburger {
 
    private List<Ingridient> ingridients = new ArrayList<>();
}
------------------------------------------------------------------------------------------------------------------
Вообще-то, по-моему, это дурацкая задача.
1) Гамбургер не может приготовить гамбургер.
Он может испортиться, протухнуть, но приготовить он себя не может.
Поэтому методу prepare() не место в интерфейсе FastFood.
Нужна ещё одна абстракция - кухня, повар или ресторан для метода prepare();
Например:
Java
1
2
3
4
public class Kitchen {
 
    public FastFood prepare(String fastFood) {}
}
2) Метод, позволяющий определить, соответствует ли информация о товаре сроку годности на текущую дату.
Обычно товар содержит дату изготовления и срок годности.
Но проверяет на соответствие текущей дате обычно клиент(покупатель).
Где вы видели, чтобы товар сам объявлял, что он годен или не годен?
Поэтому методу check() не место в интерфейсе FastFood.
Нужна ещё одна абстракция, например:
Java
1
2
3
4
public class Client {
 
    public boolean check(FastFood fastFood) {}
}
Добавлено через 1 минуту
Могу ошибаться.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3829 / 1665 / 430
Регистрация: 14.03.2022
Сообщений: 4,195
24.12.2023, 15:19
Цитата Сообщение от Хм Посмотреть сообщение
Я бы использовал коллекции
До них я еще не дочитал...

Добавлено через 10 минут
Цитата Сообщение от Хм Посмотреть сообщение
по-моему, это дурацкая задача
Это целая проблема в обучении - отсутствие путевых и интересных задач.
Страшно далеки они от народа. (с) В.И. Ленин
1
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
30.12.2023, 17:29
Java
1
2
3
4
5
6
7
8
9
/*FastFood.java*/
 
import java.util.Date;
 
interface FastFood {
    void cook();
    void printInfo();
    boolean isFresh();
}


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*Sandwich.java*/
 
class Sandwich implements FastFood {
    private String ingredients;
    private Date expiryDate;
 
    public Sandwich(String ingredients, Date expiryDate) {
        this.ingredients = ingredients;
        this.expiryDate = expiryDate;
    }
 
    @Override
    public void cook() {
        System.out.println("Cooking sandwich with ingredients: " + ingredients);
    }
 
    @Override
    public void printInfo() {
        System.out.println("Sandwich ingredients: " + ingredients);
        System.out.println("Expiry date: " + expiryDate);
    }
 
    @Override
    public boolean isFresh() {
        Date currentDate = new Date();
        return currentDate.before(expiryDate);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*Hamburger.java*/
class Hamburger implements FastFood {
    private String ingredients;
    private Date expiryDate;
 
    public Hamburger(String ingredients, Date expiryDate) {
        this.ingredients = ingredients;
        this.expiryDate = expiryDate;
    }
 
    @Override
    public void cook() {
        System.out.println("Cooking hamburger with ingredients: " + ingredients);
    }
 
    @Override
    public void printInfo() {
        System.out.println("Hamburger ingredients: " + ingredients);
        System.out.println("Expiry date: " + expiryDate);
    }
 
    @Override
    public boolean isFresh() {
        Date currentDate = new Date();
        return currentDate.before(expiryDate);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*Main.java*/
public class Main {
    public static void main(String[] args) {
        Sandwich sandwich = new Sandwich("Bread, ham, cheese, lettuce, tomato", new Date(1234567890));
        Hamburger hamburger = new Hamburger("Bread, beef patty, cheese, pickles, ketchup", new Date(9876543210));
 
        sandwich.cook();
        sandwich.printInfo();
        System.out.println("Is sandwich fresh? " + sandwich.isFresh());
 
        hamburger.cook();
        hamburger.printInfo();
        System.out.println("Is hamburger fresh? " + hamburger.isFresh());
    }
}
В этом коде создается интерфейс FastFood, который определяет методы cook, printInfo и isFresh. Затем есть классы Sandwich и Hamburger, которые реализуют этот интерфейс.
Каждый класс имеет свои уникальные поля (ингредиенты и срок годности) и реализует методы интерфейса, включая методы для проверки свежести продукта.
Также в классе Main создаются экземпляры Sandwich и Hamburger, вызываются их методы и выводится результат проверки свежести.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2023, 17:29
Помогаю со студенческими работами здесь

В зависимости от выбора пользователя, инициализировать один из классов-наследников и использовать только его
Всем здрасьте. У меня такая ситуация: Есть класс-родитель: Main Есть много классов-наследников: One, Two, Three, Four .... и т.д. ...

Создать класс-родитель точка, его наследника - класс отрезок, наследников отрезка «квадрат», «параллелограмм» (нарисоват
#include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;Windows.h&gt; using...

Реализовать класс для матриц. В этом классе реализовать интерфейс, содержащий методы для выполнения операций
Реализовать класс для матриц. В этом классе реализовать интерфейс, содержащий методы для выполнения следующих операций: - сложение -...

реализовать интерфейс
Помогите пожалуйста реализовать интерфейс IComparable и перегрузить операции отношения для реализации значимой семантики сравнения 2ух...

Реализовать интерфейс IEnumerable
Добрый день. Никак не могу понять как реализовать IEnumerable в собственном классе. Допустим, я имею класс: using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru