Olá, poderiam me explicar a diferença entre herança e a composição de Classe?
Pelo que entendi a herança me permite acessar todos os atributos e métodos da classe herdada. Já na composição eu só acesso os atributos?
Olá, poderiam me explicar a diferença entre herança e a composição de Classe?
Pelo que entendi a herança me permite acessar todos os atributos e métodos da classe herdada. Já na composição eu só acesso os atributos?
Olá Elber,
Na herança, a classe filha herda as propriedades da classe pai. Portanto, sim, é possível acessar todos os atributos e métodos da classe herdada. A classe filha pode ter ainda atributos mais específicos que a classe pai. Exemplo: Classe Animal e Classe Cachorro. Todo cachorro É UM animal, portanto, Cachorro extende animal e possui todos os atributos de um animal e mais alguns específicos que somente estão relacionados com o Cachorro e não com todos animais.
Na composição, diferentemente da herança, uma classe usa ou TEM UMA outra classe. Por exemplo, um carro utiliza/tem um motor. Ou seja, o carro é COMPOSTO por motor (e outros objetos). Entretanto, motor NÃO É UM objeto filho de carro. Outro exemplo seria a relação entre um objeto Livro e um objeto Autor . Um Livro possui (é composto) por um ou até mais autores, mas Autor não é filho de Livro.
Para diferenciar as duas classificações, comumente é utilizado os termos "é um" para herança e "tem um" para composição conforme exemplos acima.