Как достать массив из дочернего класса?
Есть родительский класс Shop и дочерний Cakes,как достать массив cake, чтобы с ним можно было бы работать в Shop?
Shop.java
public class Shop {
protected Product[] products = {
new Product("диван", 800, 0, 0, ""),
new Product("стол", 600, 0, 0, ""),
new Product("стул", 300, 0, 0, "")
};
}
Cakes.java
public class Cakes extends Product {
protected int expirationDate;
protected Product[] cake = {
new Product("торт1", 500, 240, 7, "Торты"),
new Product("торт2", 1000, 340, 4, "Торты")
};
protected Cakes(String name, int price, int weigth, int expirationDate, String cathegory) {
super(name, price, weigth, expirationDate, cathegory);
this.expirationDate = expirationDate;
}
}
Ответы (1 шт):
Вы должны понимать, что на текущий момент связи между этими классами в целом нет. А ответ зависит от того, как они будут использоваться: Если нужно просто достать переменную cake из класса, можно объявить её как public static и обращаться как Cakes.cake. Либо сделать отдельные методы get/set и модифицировать/брать через них. Если же объектов cakes может быть много - нужно создать инстанс объекта Cakes (Cakes cakesInstance = new Cakes(name, price, weigth, expirationDate, cathegory)) и имея этот инстанс через всё те же get/set методы стучаться к переменой.
Замечу, что в целом объекты выглядят странно. Cakes наследует продукт и должен по логике являться видом продукта, но при этом содержит в себе статический набор продуктов cake, где у нас почему-то торты.