Как достать массив из дочернего класса?

Есть родительский класс 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 шт):

Автор решения: WildTigerrr

Вы должны понимать, что на текущий момент связи между этими классами в целом нет. А ответ зависит от того, как они будут использоваться: Если нужно просто достать переменную cake из класса, можно объявить её как public static и обращаться как Cakes.cake. Либо сделать отдельные методы get/set и модифицировать/брать через них. Если же объектов cakes может быть много - нужно создать инстанс объекта Cakes (Cakes cakesInstance = new Cakes(name, price, weigth, expirationDate, cathegory)) и имея этот инстанс через всё те же get/set методы стучаться к переменой.

Замечу, что в целом объекты выглядят странно. Cakes наследует продукт и должен по логике являться видом продукта, но при этом содержит в себе статический набор продуктов cake, где у нас почему-то торты.

→ Ссылка