Ola pessoal, desculpe o tempo em que fiquei sem atualizar o blog, mas estou postando agora um novo artigo desta vez sobre Herança, espero que gostem.
Segundo o conceito genético da palavra, a herança ocorre quando um organismo adquire características e propriedades daquele que lhe deu origem, através de sua codificação (Código Genético). Bom a partir desta definição podemos definir o que é a herança no mundo da programação orientada a objetos, sendo que este conceito é basicamente o mesmo.
Desta forma uma classe herda as características de sua classe "mãe" sendo assim estas características ficam implícitas em seu contexto.
Em linhas gerais isto nos possibilita fazer códigos mais limpos e eficientes. Os métodos herdados não precisam ser reescritos, evitando redundância de código e aumentando a confiabilidade do mesmo. A implementação da herança depende da linguagem utilizada, vou exemplificar utilizando o C#.
Inicialmente temos uma classe mãe que define algumas propriedades.
public class Animal
{
private int _vitalidade;
private int _agressividade;
public int Vitalidade
{
get { return _vitalidade; }
set { _vitalidade = value; }
}
public int Agressividade
{
get { return _agressividade; }
set { _agressividade = value; }
}
}
Tendo a Classe Animal podemos observar que duas características são bem definidas Vitalidade e Agressividade. Todos os animais de nosso mundo fictício vão ter estas características. Agora podemos definir mais duas classe Carnivoro e Herbivoro, que vão herdar da classe Animal, assim estas duas classes vão receber as caracteristicas de sua classe mãe.
public class Carnivoro : Animal
{
private int _forçaAtaque;
public int ForçaAtaque
{
get { return _forçaAtaque; }
set { _forçaAtaque = value; }
}
public string Alimentação()
{
return "Carne";
}
}
public class Herbivoro : Animal
{
private int _velocidadeEsquiva;
public int velocidadeEsquiva
{
get { return _velocidadeEsquiva; }
set { _velocidadeEsquiva = value; }
}
public string Alimentação()
{
return "Vegetais";
}
}
Estas duas especializações de Animal nos possibilitam identificar melhor um animal. Agora sabemos que em nosso mundo Animais Carnívoros possuem força de ataque, Animais Herbívoros possuem velocidade de esquiva e a alimentação é diferente entre eles. Vamos nos aprofundar mais neste mundo e criar mais duas especificações, o Lobo e a Ovelha.
public class Lobo : Carnivoro
{
public Lobo()
{
Vitalidade = 100;
Agressividade = 75;
ForçaAtaque = 45;
}
public string Alimento()
{
return "Ovelha";
}
}
public class Ovelha :Herbivoro
{
public Ovelha()
{
Vitalidade = 100;
Agressividade = 5;
VelocidadeEsquiva = 35;
}
public string Alimento()
{
return "Grama";
}
}
Agora temos estas duas classes mais especializada e podemos utilizar qualquer uma das propriedades de sua classe mãe assim também como todas as propriedades das outras classes em sua cadeia hierárquica.
O
C# como também o
JAVA, não possuem
herança múltipla, sendo assim uma classe não pode herdar de mais de uma classe, como é possível no
C++, porem, é possível implementar uma
interface, que possui um conceito um pouco diferente, mas sobre este assunto vou deixar para outro post.
Espero que tenham gostado, até a próxima.