/ / Atingir a reutilização de código na herança em java - java, herança

Alcance reusabilidade de código em herança em java - java, herança

Ouvi dizer que a reutilização de código podemos alcançarpor herança, exemplo: de uma super classe A, podemos herdar os métodos que não sejam métodos privados para a classe B se ela for estendida e assumir que ambas as classes estão no mesmo pacote. Se essa é a maneira de obter a reutilização de código na herança, o mesmo também podemos obter criando um objeto dessa classe A, certo? Quero dizer, criando um objeto, podemos acessar os métodos públicos, exceto os métodos privados, certo? por que precisamos de herança aqui? Qual é o código de reutilização na herança?

Respostas:

2 para resposta № 1

Quem lhe disse que lhe deu conselhos "ruins".

o primário objetivo da herança é não para reutilização de código.

As classes são projetadas para criar um modelo (aka abstração) da realidade; mais especificamente: um útil modelo. E uma parte essencial disso: você não escreve class A extends B porque é conveniente para fazer isso ou porque ajuda a economizar alguns esforços de codificação.

Você faz isso, porque no domínio do seu problema, simplesmente faz sentido que qualquer A é um B. Esse é o núcleo da herança: dois objetos mostrando a mesmo comportamento.

E: pelo contrário, o paradigma mais relevante e aceito segue exatamente na direção oposta: FCoI (favorecer a composição sobre a herança).

Por favor, não me interpretem mal: duplicação de código é um dos pior coisas que você pode fazer como programador. Portanto, evitar a duplicação de código é um dos virtudes essenciais de boa programação. Mas: herança cria acoplamento entre classes; e não é uma boa idéia impedir a duplicação de código, desistindo do isolamento de classes. Como a herança pode impedir que você reutilize uma classe em outro contexto.

Significado: às vezes, a herança funciona bem para impedir a duplicação de código; mas você tem que ter cuidado com isso.