You can, however, let a base reference point to a derived object:
Product pr = new MusicCD(...);

This is how you make the ProductList work. You can have it store a mixture of all Product subclasses.