I am working on an assignment, and required is that I create two generic collections (called ComputerOrder and PartyTrayOrder) of several classes: ComputerPart, Peripheral, and Service, and and of Cheese, Fruit, and Service respectively. All of these classes (ComputerPart, Fruit, Service, etc) extend one class called Product. 

The problem I have encountered is that it seems to be impossible to bound more than one class in Java, as you may only bound multiple interfaces, and I am not allowed to modify the existing class structure.

I've read around and seen it suggested that I create and interface that "codes in" all of the relevant classes, but I fail to see how this is possible without ComputerPart, Peripheral, etc ALSO being interfaces and then using the extend keyword. I've seen it further suggested that I create abstract classes called ComputerProduct and PartyTrayProduct, but I fail to see how this will in any way restrict the types.

I am not allowed to post images, but here is a
[class diagram, including some unrelated assignment objects](https://i.imgur.com/RUtUgVd.png)

Here is my current code for ComputerOrder, though it only bounds the parent class product, meaning it isn't really as the assignment specifies.

```
public class ComputerOrder<T extends Product> extends GenericOrder<T> {
    public ComputerOrder() {
        super();
    }
}

```

Here are the assignment specifications:

1. Design and implement a generic container called GenericOrder that acts as a collection of an arbitrary number of objects in Products.java. Design a mechanism that gives each instance of the container a unique identifier. You must use Java generics features.
2. Design and implement a subclass of GenericOrder called ComputerOrder that takes an arbitrary number of different classes of ComputerPart objects, Peripheral objects, and Service objects. Implement as many methods as necessary.
3. Design and implement a subclass of GenericOrder called PartyTrayOrder that takes an arbitrary number of different classes of Cheese objects, Fruit objects and Service objects. Implement as many methods as necessary.
(...)