Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

6.2. Classes: herança, contenção e motivos para criar

Prefira "tem um" (contenção); herde só quando "é um" for verdade e respeite Liskov.

Comparação entre contenção (carro tem motor) e herança (carro é um veículo)
Contenção primeiro; herança com cuidado.

Resumo

Perguntas-chave

responda de cabeça, depois abra
O que diz o princípio de substituição de Liskov?
Uma subclasse deve poder ser usada em qualquer lugar que espera a classe base sem que o código perceba diferença de significado.
Quando usar herança?
Quando há uma relação "é um" verdadeira e você quer compartilhar interface e/ou implementação de forma controlada.
Cite motivos para criar uma classe.
Modelar objetos do mundo real ou abstratos, reduzir e isolar complexidade, esconder detalhes, limitar o efeito de mudanças, esconder dados globais, agrupar operações.

Exercícios de fixação

0/5 respondidas
1.
Quadrado herda de Retangulo, mas mudar só a largura de um quadrado quebra o código que espera um retângulo. Qual princípio foi violado?
2.
Um Carro precisa de um motor. Qual relação o capítulo recomenda?
3.
Um método faz switch (forma.tipo) para desenhar círculo, quadrado e triângulo. O que o capítulo sugere?
4.
Qual destas classes o capítulo aponta como suspeita?
5.
Uma classe base não foi pensada para ser estendida e não documenta isso. O que o livro recomenda?
Seu progresso fica salvo neste navegador.