Diferença entre Herança e Container

Anonim

Herança versus conteriedade

A herança e a contenção são dois conceitos importantes encontrados no OOP (Exemplo de programação orientado a objetos: C ++). Em termos simples, tanto a Containership quanto a Herança tratam de fornecer propriedades ou comportamentos adicionais a uma classe. A 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 é a herança?

Como mencionado acima, a herança é a capacidade de uma classe herdar propriedades e comportamento de uma classe pai, estendendo-a. A herança basicamente fornece reutilização de código permitindo estender propriedades e comportamento de uma classe existente por uma classe recém-definida. Se a classe A se estender por B, a classe B é chamada de classe pai (ou super classe) ea classe A é chamada de classe filho (ou classe derivada / sub classe). Neste cenário de exemplo, a classe A herdará todos os atributos e métodos públicos e protegidos da super-classe (B). A subclasse pode opcionalmente substituir (fornecer funcionalidades novas ou estendidas aos métodos) o comportamento herdado da classe pai. A herança representa um relacionamento "is-a" em OOP. Isto 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 Pessoa poderia ser estendida para criar a classe Empregado. Isso é chamado de especialização. Mas você também pode primeiro criar a classe Employee e, em seguida, generalizá-la para uma classe Pessoa também (i. E. Generalização). Neste exemplo, o Empregado terá todas as propriedades e o comportamento da Pessoa (isto é, o Empregado também é uma Pessoa) e pode conter alguma funcionalidade adicional (assim, a Pessoa não é um Empregado) também.

O que é Containership?

Containership é a capacidade de uma classe 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 dentro da classe A. A Classe A torna-se o contêiner, enquanto a classe B torna-se a classe contida. O Container é também denominado Composição. Neste exemplo, pode-se dizer que a classe A é composta pela classe B. Em OOP, Containership representa um relacionamento "has-a". É importante notar que, mesmo que o contêiner tenha acesso para executar todos os métodos públicos da classe contida, não é capaz de alterar ou fornecer funcionalidades adicionais. Quando se trata de um problema de programação do mundo real, um objeto da classe TextBox pode estar contido no formulário de classe e, portanto, pode-se dizer que um formulário contém um TextBox (ou, alternativamente, um formulário é composto por uma TextBox).

Diferença entre herança e conteriedade

Embora a herança e a contenção sejam dois conceitos de OOP, eles são bastante diferentes no que permitem ao programador alcançar. A herança é a capacidade de uma classe herdar propriedades e comportamento de uma classe pai, estendendo-a, enquanto a Containership é a capacidade de uma classe conter objetos de diferentes classes como dados de membros. Se uma classe é estendida, herda todas as propriedades / comportamento público e protegido e esses comportamentos podem ser substituídos pela subclasse. Mas se uma classe estiver contida em outra, o contêiner não possui a capacidade de alterar ou adicionar comportamento ao conteúdo. A herança representa um relacionamento "is-a" em OOP, enquanto a Containership representa um relacionamento "has-a".