Herança (POO)
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.
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.
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.
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.
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.


4 Comentários:
Às 30 de dezembro de 2008 10:54 ,
Uttermost disse...
Gostei!
É isso aí. Bom saber que você não esqueceu a BIOLOGIA, não é mesmo?
Hehehe!
É mesmo uma matéria fascinante!
Bração pro c!
Às 30 de dezembro de 2008 11:02 ,
Hugo Iuri disse...
Rsrs, Realmente a biologia é importante, genética é muito bom... rsrsrs
Abraços Marco Afonso...
Às 27 de outubro de 2009 14:16 ,
Elício disse...
olá, sou iniciante em POO em C# e gostaria de fazer uma ressalva na sua afirmação de que o C# não faze herança múltipla. o C# aceita herança multipla.
Às 27 de outubro de 2009 14:36 ,
Hugo Iuri disse...
Ola Elício, eu não conheço herança múltipla com o C#. Podemos fazer com que uma classe herde de uma outra classe, somente uma. Porem podemos fazer com que esta mesma classe implemente uma interface.
Mas por favor compartilhe conosco sua experiência.
Postar um comentário
Links para esta postagem:
Criar um link
<< Início