Escolar Documentos
Profissional Documentos
Cultura Documentos
Outro dia um amigo me perguntou o que uma classe abstrata, eu sabia o que era,
mas travei na hora de explicar, acho que por estar nervoso acabei embromando, no final
at eu fiquei confuso sobre o que tinha falado. Por isso decidi que precisava fazer um
post sobre isso pra tentar esclarecer melhor esse assunto.
Conceito
Algumas pessoas acham que algo complexo, mas podemos tornar esse conceito
bem simples, ao nvel de ser compreendido por meros mortais...rsrs. Eu diria que a
abstrao algo artstico e que pode ser concebida e traduzida de diferentes formas e
por pessoas diferentes.
Abstrao quando voc tenta extrair de um objeto do mundo real tudo aquilo que
essencial para sua definio, mantendo as caractersticas mais relevantes e deixando
as irrelevantes de lado, tornando assim o objeto generalizado, podendo ser utilizado
em vrios aspectos do seu programa.
Aplicando
Como no exemplo abaixo, podemos ver uma classe abstrata (Veiculo) desenhada em
C#.
Leia os comentrios nas classes para entender melhor:
Agora vamos implementar a classe (Carro) que herdar de (Veiculo) e que ficar da
seguinte forma:
Mas note que agora passamos o valor de 2 Rodas para a classe (Veiculo) e ao invs
de Cinto a moto implementa uma propriedade especfica dela, que o Capacete.
Testando
Vejamos agora como fica o uso dessas classes usando Teste de Unidade.
[TestClass]
public class VeiculoTest
{
[TestMethod]
public void Veiculo_DeveLigarCarro()
{
//aqui ns temos uma intncia de Carro, porm do tipo Veiculo.
//dessa forma ns s teremos acesso as prop. e mtodos da superclasse
Veiculo.
Veiculo carro = new Carro();
//ligamos o carro.
carro.Ligar();
Assert.IsFalse(carro.IsLigado());
}
Assert.AreEqual(expected, actual);
}
Assert.AreEqual(expected, actual);
}
}
Legal n, agora voc j pode ter uma noo do que uma classe abstrata. Esse
conceito pode ser aplicado em outras situaes, por exemplo: Instrumentos como
abstrata e violo, teclado e bateria herdariam dessa classe, cada uma implementando
suas funes especficas e as que sejam comuns a elas.
Cdigo