Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на Java

Алексей Пахомов Ученик (11), на голосовании 1 год назад
Есть две, взаимосвязанные, задачи:
1. Создайте абстрактный класс Building. Определите у класса свойства:
название,
адрес,
год постройки,
имя архитектора,
является ли культурным памятником.
Унаследуйте у от него 6 классов: Library, House, PoliceDepartment, University, ShoppingCenter, HighRiseBuilding.

Добавьте каждому классу наследнику по 2-3 свойства и 2-3 метода, которые соответствовали бы тематике здания. Так же необходимо во всех классах сгенерировать метод toString()

Каждый класс должен быть инкапсулирован. Если хотите, то можете расширить список зданий (классов наследников).
2. Создайте интерфейсы LivingHouse и SocialHouse (жилой дом и общественное здание). Подумайте, какие методы должны требовать к реализации эти интерфейсы. Опишите 2-3 таких метода. Добавьте нужные интерфейсы к классам наследникам из предыдущей задачи и реализуйте необходимые методы.
В чем проблема: я уже два дня не могу придумать, какие методы можно добавить в интерфейсы. В голову лезут идеи скорее для абстрактных классов, а не интерфейсов. Подскажите, что можно добавить в эти интерфейсы. Заранее спасибо!
Голосование за лучший ответ
Терр Онтал Мудрец (12818) 1 год назад
Методы Снести(), Эвакуировать(), Отремонтировать()
Sergio 2.1 Оракул (67798) 1 год назад
 // Абстрактный класс Building 
public abstract class Building {
private String name;
private String address;
private int yearOfConstruction;
private String architectName;
private boolean isCulturalMonument;

// Конструктор
public Building(String name, String address, int yearOfConstruction, String architectName, boolean isCulturalMonument) {
this.name = name;
this.address = address;
this.yearOfConstruction = yearOfConstruction;
this.architectName = architectName;
this.isCulturalMonument = isCulturalMonument;
}

// Геттеры и сеттеры
// ...

// Метод toString()
@Override
public String toString() {
return "Building{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", yearOfConstruction=" + yearOfConstruction +
", architectName='" + architectName + '\'' +
", isCulturalMonument=" + isCulturalMonument +
'}';
}
}

// Класс Library, наследник от Building
public class Library extends Building {
private int numberOfBooks;
private boolean hasReadingRooms;

// Конструктор
public Library(String name, String address, int yearOfConstruction, String architectName, boolean isCulturalMonument,
int numberOfBooks, boolean hasReadingRooms) {
super(name, address, yearOfConstruction, architectName, isCulturalMonument);
this.numberOfBooks = numberOfBooks;
this.hasReadingRooms = hasReadingRooms;
}

// Геттеры и сеттеры
// ...

// Метод toString()
@Override
public String toString() {
return "Library{" +
"numberOfBooks=" + numberOfBooks +
", hasReadingRooms=" + hasReadingRooms +
"} " + super.toString();
}
}

// Остальные классы создаются аналогично

// Интерфейсы LivingHouse и SocialHouse
public interface LivingHouse {
void residentsInfo();
}

public interface SocialHouse {
void socialActivityInfo();
}

// Пример класса House с интерфейсом LivingHouse
public class House extends Building implements LivingHouse {
private int numberOfResidents;

// Конструктор
public House(String name, String address, int yearOfConstruction, String architectName, boolean isCulturalMonument,
int numberOfResidents) {
super(name, address, yearOfConstruction, architectName, isCulturalMonument);
this.numberOfResidents = numberOfResidents;
}

// Геттеры и сеттеры
// ...

// Метод toString()
@Override
public String toString() {
return "House{" +
"numberOfResidents=" + numberOfResidents +
"} " + super.toString();
}

// Реализация метода из интерфейса LivingHouse
@Override
public void residentsInfo() {
System.out.println("Number of residents: " + numberOfResidents);
}
}
Это простой пример. Вам нужно будет добавить больше свойств и методов в соответствии с вашими требованиями. Также не забудьте добавить геттеры и сеттеры для всех свойств.
Похожие вопросы