Java правильно совмещает классы - PullRequest
0 голосов
/ 18 октября 2019

У меня есть следующие классы, Дом, Вилла, Деревянный Дом, Гараж, Дверь и Окна.

Только Вилла может иметь гаражи. У меня есть открытие в доме по количеству дверей + окон. И площадь в гараже для гаража.

Теперь я хочу создать Дом Вилла / Деревянный Дом с количеством дверей, окон и, если это возможно, гараж, если так площадь.

Iсоздал каждый класс, но я застрял с конструкторами. Не знаю, как правильно связать их.

    import javax.swing.JOptionPane;
public class House {
private int opening;

public int getOpenings(){
        return opening;
    }

public House(String Art) {
        if (Art=="Villa") {
            House = new House(new Villa(Villa.))
        }
    }


}
import javax.swing.JOptionPane;


public class Villa extends House {

private Garage garage;

Garage garage = new Garage(JOptionPane.showInputDialog("Garage area"));


}
import javax.swing.JOptionPane;
public class WoodenHouse extends House{
public WoodenHouse() {

}
}
import javax.swing.JOptionPane;
public class Garage {
private int Area;

public void setArea(int f) {
    Area = f;   
}

public int getArea() {
    return Area;
}


}
import javax.swing.JOptionPane;
public class Doors {
int AmountD;
}

public class Windows {
int AmountW;
}

Хотите в конечном итоге получить House1 = новый дом (какой, количество дверей, количество окон, гараж?) Любые вещи, чтобы я мог закончить с этим

1 Ответ

0 голосов
/ 18 октября 2019

Как бы я подошел к этому:
У меня был бы интерфейс HasGarages, с методом int numberOfGarages() или чем-то подобным.
Другой интерфейс HouseDetails, с методами int opening() и int area().
Третий интерфейс HasGaragesAndMore (или некоторый такой), который расширяет оба.
Затем классы реализуют интерфейс, который им необходим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...