Neste exemplo, cada combinação de forma + cor é uma classe separada:
public class CirculoVermelho extends Circulo { }
public class CirculoAzul extends Circulo { }
public class QuadradoVermelho extends Quadrado { }
public class QuadradoAzul extends Quadrado { }
- 2 formas × 2 cores = 4 classes
- adicionar 1 forma nova (Triângulo) → +2 classes
- adicionar 1 cor nova (Verde) → +3 classes
- com N formas e M cores são N × M subclasses