O herança em programação Orientado 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 as 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, em seguida, definir uma ou mais subclasses com sua própria funcionalidade personalizada.
Índice do artigo
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 precisa 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 que substitui parcialmente parte de seu comportamento, ou talvez alguma nova funcionalidade seja adicionada..
Uma classe derivada herda todos os métodos da classe base, exceto o seguinte:
- Construtores, destruidores e construtores de cópia da classe base.
- Operadores sobrecarregados de classe base.
- Funções amigáveis da classe base.
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 para a classe base funcionarão para os derivados.
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 uma classe base, uma vez que está na base da hierarquia.
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 poderia 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 que funcione nos objetos instrutor e aluno, porque ambos são herdeiros de pessoa.
Quando uma classe derivada herda as propriedades e o comportamento de uma única classe base. Ou seja, uma classe se estende a outra classe.
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.
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.
É a herança resultante quando qualquer uma das três heranças anteriores são combinadas (única, hierárquica e multinível).
Corresponde à figura da herança quando uma classe herda de mais de uma superclasse. A desvantagem deste tipo de herança é que a classe derivada terá que lidar com a dependência que tem de duas classes básicas.
Por outro lado, esse tipo de herança permite aos programadores erguer classes que combinam os aspectos de várias classes e suas hierarquias correspondentes..
Quando uma classe é derivada de uma classe base pública, os membros públicos da classe base tornam-se membros públicos da classe derivada e os membros protegidos da classe base tornam-se 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 meio de chamadas feitas aos membros públicos e protegidos da classe base..
Ao criar uma classe que herda de uma superclasse protegida, tanto os membros públicos quanto os protegidos dessa superclasse se tornarão membros protegidos da classe derivada.
Ao criar uma subclasse de uma superclasse privada, os membros públicos e protegidos dessa superclasse se tornarão membros privados da subclasse.
Para mostrar como funciona o princípio da herança, consideraremos robôs ou uma classe de robôs melhor 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, você pode 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 RobotMédico..
Quando uma instância do RobotMédico é 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.
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, uma lista de derivação de classe é usada para especificar as classes base.
Uma lista de derivação de classe em C ++ nomeia uma ou mais classes base e tem a seguinte forma: aula classe derivada: especificador de acesso classe base, na que especificador de acesso isso é 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 pensar na superclasse "Forma" e sua classe derivada "Retângulo" da seguinte maneira:
Quando o código acima é compilado e executado, a seguinte saída ocorre: "Área total: 35".
Ainda sem comentários