Knit jacket with buttons
This is Variable product. Variable products take things further than product attributes. Each product is still set up as just one product, but you can define variations of the product with different prices, stock levels and images.
You start off by creating product attributes and adding these to each product, but then you define the product as a variable product (rather than a simple product) and set up variations based on each of your attributes or combinations of them.