Herança – Orientação a Objetos

Herança é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos, através de “heranças”. Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos.

Herança – Orientação a Objetos

O conceito de herança de várias classes é conhecido como herança múltipla. Como exemplo pode-se observar as classes ‘aluno’ e ‘professor’, onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada por exemplo, ‘pessoa’, que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode- se dizer que aluno e professor são subclasses de pessoa.

Também podemos dizer que uma classe pode ser abstrata(abstract) ou seja ela não pode ter uma instância, ela apenas “empresta” seus atributos e metódos como molde para novas classes.

A principal vantagem da é a capacidade para definir novos atributos e métodos para a subclasse, que se somam aos atributos e métodos herdados.

Exemplo:

Exemplo escrito por Izabela Vanessa de Almeida Melohttp://www.dsc.ufcg.edu.br/~pet/jornal/junho2011/materias/recapitulando.html

Nesse exemplo temos uma superclasse Pessoa com suas subclasses PessoaFisica e PessoaJuridica. A subclasse PessoaFisica possui os dois atributos de sua superclasse (nome e endereço) e possui o seu atributo particular CPF. O mesmo acontece com a subclasse PessoaJuridica, porém sua particularidade é o CNPJ.

Herança múltipla

Em orientação a objetos, é o conceito de herança de duas ou mais classes. Ela é implementada nas linguagens de programação C++ e em Python, por exemplo. A linguagem Java possui apenas herança simples (uma classe possui no máximo uma classe pai), mas permite que uma classe implemente várias interfaces.

Herança múltipla
Herança múltipla

O uso indiscriminado desta característica pode levar a uma codificação confusa que dificultaria a manutenção do código. Porém, uma interface pode sim ter mais de uma interface pai. Ex:

interface X { }
interface Y { }
interface Z extends X, Y { }

Fonte: https://pt.wikipedia.org/wiki/Heran%C3%A7a_(programa%C3%A7%C3%A3o_orientada_a_objetos)

Deixe uma resposta