O conceito de herança é um dos mais importantes da programação orientada a objetos. Ele permite que se estenda as classes, gerando herdeiras, que são chamadas de classes-filha ou subclasses.
Vejam a ilustração abaixo, onde temos uma classe chamada Pessoa, uma Aluno e uma Professor.
As classes Aluno e Professor são herdeiras de Pessoa, portanto, nesta ilustração a classe Pessoa é chamada de Superclasse ou classe-pai. As classes Aluno e Professor são chamadas de Subclasses ou classes-filha.
Notem que todo aluno e professor também são pessoas, mas nem todas as pessoas são alunos ou professores. Neste exemplo, as classes "Aluno" e "Professor", por serem herdeiras de "Pessoa", também terão "nome", "idade", "e-mail" e "sexo", que são os atributos da superclasse, mas além disso terão outros atributos específicos deles. É exatamente para que não tenhamos que inserir esses atributos comuns em todas as classes, o que geraria repetição de código, que existe a herança. Com ela podemos definir as classes Pessoa e Professor como herdeiras da classe Pessoa, ou seja, como subclasses da superclasse Pessoa. O triângulo ligando a classe Pessoa às outras duas indicam exatamente isso.
Aplicando o modelo da ilustração acima, Aluno será herdeiro de Pessoa, portanto terá nome, idade, e-mail e sexo, mas também terá nro_matricula e curso como atributos. Já Professor terá nome, idade, e-mail e sexo, mas também disciplina e salario. A mesma lógica vale para os métodos.Tanto Professor quanto Aluno terão o método exibeDados, mas Aluno também terá atualizaCurso e apagaMatricula. Já Professor terá o método exibeDados, mas também terá o cadastraAluno.
Vejam que com a herança é possível tornar tudo bastante organizado e com uma enorme reutilização de código das classes, ou seja, o processo de programação fica mais ágil. Vejamos como seria isso na prática. Vamos criar a classe "Pessoa" utilizando o C#.
Agora criarei a classe "Aluno", fazendo-a herdar as características da classe "Pessoa":
Vamos ver na prática isso funcionando. Vou tentar acessar o método exibeDados, presente na classe "Pessoa", mas a partir de um objeto do tipo "Aluno".
Aí está o método exibeDados disponível para uso! Ou seja, de fato a classe "Aluno" herdou as características da classe "Pessoa", já que pode usar os métodos disponíveis apenas nela. Percebam que eu posso manipular todos os atributos da classe "Pessoa" a partir da classe "Aluno". Isso, através da herança, foi possível sem a necessidade de repetir tais argumentos no código. Conforme citei no início deste tópico, é o reaproveitamento de código voltado para as classes. Simples, mas muito útil!
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Mario em Donkey Kong
O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
Máquina de Pascal
A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.