Diferença entre herança e contêiner

Herança vs Recipiente

Herança e Recipiente são dois conceitos importantes encontrados em OOP (Exemplo de Programação Orientada a Objetos: C ++). Em termos simples, tanto o Contêiner quanto a Herança lidam com o fornecimento de propriedades ou comportamento adicionais a uma classe. Herança é a capacidade de uma classe herdar propriedades e comportamento de uma classe pai, estendendo-a. Por outro lado, Containership é a capacidade de uma classe conter objetos de diferentes classes como dados de membros.

O que é herança?

Como mencionado acima, Herança é a capacidade de uma classe herdar propriedades e comportamento de uma classe pai, estendendo-a. A herança essencialmente fornece a reutilização de código, permitindo estender propriedades e comportamento de uma classe existente por uma classe recém-definida. Se a classe A estender B, a classe B será chamada de classe pai (ou superclasse) e a classe A será chamada de classe filha (ou classe / subclasse derivada). Nesse cenário de exemplo, a classe A herdará todos os atributos e métodos públicos e protegidos da superclasse (B). A subclasse pode opcionalmente substituir (fornecer funcionalidade nova ou estendida aos métodos) o comportamento herdado da classe pai. A herança representa um relacionamento "is-a" no POO. Isso significa essencialmente que A também é um B. Em outras palavras, B pode ser a classe com uma descrição geral de uma determinada entidade do mundo real, mas A especifica uma certa especialização. Em um problema de programação do mundo real, a classe Person pode ser estendida para criar a classe Employee. Isso é chamado de especialização. Mas você também pode primeiro criar a classe Employee e generalizá-la para uma classe Person (ou seja, generalização). Neste exemplo, o Funcionário terá todas as propriedades e comportamento da Pessoa (ou seja, Funcionário também é uma Pessoa) e pode conter algumas funcionalidades adicionais (portanto, Pessoa não é um Funcionário) também.

O que é Containerership?

Contêiner é a capacidade de uma classe de conter objetos de diferentes classes como dados de membros. Por exemplo, a classe A pode conter um objeto da classe B como membro. Aqui, todos os métodos públicos (ou funções) definidos em B podem ser executados na classe A. A classe A se torna o contêiner, enquanto a classe B se torna a classe contida. O contêiner também é conhecido como Composição. Neste exemplo, pode-se dizer que a classe A é composta da classe B. Na OOP, o Containership representa um relacionamento “tem-a”. É importante observar que, embora o contêiner tenha acesso para executar todos os métodos públicos da classe contida, ele não pode alterar ou fornecer funcionalidade adicional. Quando se trata de um problema de programação do mundo real, um objeto da classe TextBox pode estar contido na classe Form e, portanto, pode-se dizer que um Form contém um TextBox (ou, alternativamente, um Form é composto de um TextBox).

Diferença entre herança e contêiner

Embora Herança e Recipiente sejam dois conceitos de POO, eles são bem diferentes no que permitem ao programador alcançar. Herança é a capacidade de uma classe herdar propriedades e comportamento de uma classe pai, estendendo-a, enquanto Containership é a capacidade de uma classe de conter objetos de diferentes classes como dados de membros. Se uma classe for estendida, ela herdará todas as propriedades / comportamentos públicos e protegidos e esses comportamentos poderão ser substituídos pela subclasse. Mas se uma classe estiver contida em outra, o contêiner não terá a capacidade de alterar ou adicionar comportamento ao contido. A herança representa um relacionamento "is-a" no OOP, enquanto o Containership representa um relacionamento "has-a".