Herança em programação: características, tipos, exemplos - Ciência - 2023
science
Contente
- Características de herança
- Hierarquia
- Polimorfismo
- Tipos de herança
- Herança única
- Herança multinível
- Herança hierárquica
- Herança híbrida
- Herança múltipla
- Tipos de herança de uma classe base
- Herança pública
- Herança protegida
- Herança privada
- Exemplos
- Exemplo Python
- Exemplo em C ++
- Referências
o herança em programaçãoOrientado a Objeto é uma forma de organizar objetos em uma hierarquia do mais geral ao mais específico. É o gadget usado para estender uma classe para outra classe, preservando uma execução análoga.
Na maioria das linguagens orientadas a objetos baseadas em classes, um objeto criado por herança, chamado de objeto filho, obtém todas as propriedades e comportamentos do objeto pai.
Portanto, é uma qualidade que representa a relação entre diferentes classes. A herança permite que uma classe tenha o mesmo comportamento de outra classe e estenda ou adapte esse comportamento para fornecer uma ação especial para necessidades específicas.
A herança pode ajudar a representar objetos que possuem algumas diferenças e semelhanças na maneira como funcionam. Você pode colocar todas as funcionalidades que os objetos têm em comum em uma classe base e definir uma ou mais subclasses com sua própria funcionalidade personalizada.
Características de herança
Herança é um dos principais recursos da programação orientada a objetos, que é usada para definir uma nova classe a partir das classes existentes.
Ou seja, novas classes podem ser derivadas de classes base existentes, adicionando novos recursos. Você não tem que escrever do zero. Portanto, a herança fornece uma maneira de reutilizar facilmente o código existente.
Se você já tem uma classe que faz quase tudo o que você deseja, pode criar uma subclasse na qual parte de seu comportamento seja parcialmente substituído ou talvez alguma nova funcionalidade seja adicionada.
Uma classe derivada herda todos os métodos da classe base, exceto pelo seguinte:
- Construtores, destruidores e construtores de cópia da classe base.
- Operadores sobrecarregados da classe base.
- Funções amigáveis da classe base.
Hierarquia
Assim como uma árvore genealógica, a herança serve para formar uma hierarquia de classes. É importante observar que os atributos determinados para uma classe base estarão automaticamente presentes na classe derivada. Além disso, os métodos da classe base funcionarão com as derivadas.
Uma classe é considerada uma subclasse da classe da qual herda. Por outro lado, essa classe será sua superclasse. A classe mais genérica pode ser referida como a classe base, pois está na base da hierarquia.
Polimorfismo
A herança é muito popular em algumas linguagens com tipos estáticos, porque permite ao programador evitar algumas das restrições do tipo estático.
Um objeto que herda de outro objeto é considerado um subtipo desse objeto. Um exemplo pode ser os objetos "instrutor" e "aluno", cada um dos quais herda de "pessoa".
Se instrutor e aluno forem do mesmo tipo de pessoa, você pode escrever uma função que aceite o tipo de pessoa como parâmetro e funcione nos objetos instrutor e aluno, porque ambos são herdeiros de pessoas.
Tipos de herança
Herança única
Quando uma classe derivada herda as propriedades e o comportamento de uma única classe base. Ou seja, uma classe se estende a apenas uma outra classe.
Herança multinível
Refere-se ao dispositivo onde você pode herdar de uma classe derivada, tornando essa classe derivada a classe base para uma nova classe. Ou seja, ocorre quando uma classe derivada é criada a partir de outra classe derivada.
Herança hierárquica
Nessa herança, muitas subclasses herdam de uma única classe. Ou seja, isso acontece quando uma única classe base é herdada por mais de uma classe derivada.
Herança híbrida
É a herança resultante quando qualquer uma das três heranças anteriores (única, hierárquica e multinível) são combinadas.
Herança múltipla
Corresponde à figura da herança quando uma classe herda de mais de uma superclasse. A desvantagem desse tipo de herança é que a classe derivada terá que lidar com a dependência que possui de duas classes básicas.
Por outro lado, esse tipo de herança permite que os programadores construam classes que combinam os aspectos de várias classes e suas hierarquias correspondentes.
Tipos de herança de uma classe base
Herança pública
Quando uma classe é derivada de uma classe base pública, os membros públicos da classe base se tornam membros públicos da classe derivada e os membros protegidos da classe base se tornam membros protegidos da classe derivada.
Os membros privados de uma superclasse nunca estarão acessíveis diretamente de uma classe derivada, mas podem ser acessados por chamadas feitas aos membros públicos e protegidos da classe base.
Herança protegida
Quando é criada uma classe que herda de uma superclasse protegida, os membros públicos e protegidos dessa superclasse se tornarão membros protegidos da classe derivada.
Herança privada
Quando uma subclasse é criada a partir de uma superclasse privada, os membros públicos e protegidos dessa superclasse se tornarão membros privados da subclasse.
Exemplos
Exemplo Python
Para mostrar como funciona o princípio da herança, examinaremos robôs ou uma classe melhor de robôs na linguagem de programação Python. Para fazer isso, uma classe chamada RobotMédico (PhysicianRobot), que é derivado da superclasse Robot.
Se você olhar o código da classe RobotMédico, verá que nenhum atributo ou método foi definido nesta classe.
Como a classe RobotMedico é uma subclasse de Robot, ela herda os métodos __init__ e say_hi neste caso. Herdar esses métodos significa que eles podem ser usados como se tivessem sido definidos na classe RobotMedico.
Quando uma instância do RobotMedico é criada, a função __init__ também criará um atributo de nome. O método say_hi pode ser aplicado ao objeto “y” do RobotMédico, como pode ser visto no resultado do código anterior.
Exemplo em C ++
Uma classe pode herdar de mais de uma classe, o que significa que pode herdar dados e funções de várias superclasses. Para definir uma classe derivada, você usa uma lista de derivação de classe para especificar as classes base.
Uma lista de derivação de classe em C ++ nomeia uma ou mais classes básicas e tem a seguinte forma: classeclasse derivada: especificador de acessoclasse base, na que especificador de acesso isto é público, protegido ou privado, Y classe base é o nome de uma classe definida anteriormente. Se não for usado especificador de acesso, toma privado por padrão.
Você pode considerar a superclasse "Forma" e sua classe derivada "Retângulo" da seguinte maneira:
Quando o código acima é compilado e executado, ocorre a seguinte saída: “Área total: 35”.
Referências
- Dave Braunschweig (2020). Herança e polimorfismo. Comunidade Rebus. Retirado de: press.rebus.community.
- Curso de Python (2020). Herança. Retirado de: python-course.eu.
- Data Mentor (2020). Herança R. Retirado de: datamentor.io.
- Ponto de tutoriais (2020). Herança de C ++. Retirado de: tutorialspoint.com.
- Net-informações (2020). Diferentes tipos de herança. Retirado de: net-informations.com.