Perguntas com a marcação «inheritance»

A herança é uma maneira de reutilizar o código de objetos existentes ou estabelecer um subtipo de um objeto existente, ou ambos, dependendo do suporte à linguagem de programação.

4
Herança vs mixins em idiomas dinâmicos?
Quando você deve preferir padrões de herança a mixins em linguagens dinâmicas? Por mixins, refiro-me à mistura adequada real, como na inserção de funções e membros de dados em um objeto em tempo de execução. Quando você usaria, por exemplo, herança prototípica em vez de mixins? Para ilustrar mais claramente …

1
Por que Bertrand Meyer acha que a subclasse é a única maneira de estender um módulo "fechado"?
Na Construção de Software Orientada a Objetos de Meyer (1988), ele define o princípio aberto / fechado da seguinte forma: Um módulo será considerado aberto se ainda estiver disponível para extensão. Por exemplo, deve ser possível adicionar campos às estruturas de dados que ele contém ou novos elementos ao conjunto …





14
Como posso explicar a utilidade da herança? [fechadas]
Atualmente, essa questão não se encaixa no nosso formato de perguntas e respostas. Esperamos que as respostas sejam apoiadas por fatos, referências ou conhecimentos, mas essa pergunta provavelmente solicitará debates, argumentos, pesquisas ou discussões prolongadas. Se você acha que essa pergunta pode ser melhorada e possivelmente reaberta, visite o centro …

1
Como verificar o princípio de substituição de Liskov em uma hierarquia de herança?
Inspirado por esta resposta: O princípio da substituição de Liskov exige que As pré-condições não podem ser reforçadas em um subtipo. As pós-condições não podem ser enfraquecidas em um subtipo. Invariantes do supertipo devem ser preservados em um subtipo. Restrição do histórico (a "regra do histórico"). Os objetos são considerados …


8
“Preferir composição sobre herança” - é o único motivo para se defender contra alterações de assinatura?
Esta página defende composição sobre herança com o seguinte argumento (reformulado em minhas palavras): Uma alteração na assinatura de um método da superclasse (que não foi substituída na subclasse) causa alterações adicionais em muitos lugares quando usamos Herança. No entanto, quando usamos o Composition, a alteração adicional necessária ocorre apenas …


3
Composição sobre herança, mas
Estou tentando me ensinar engenharia de software e encontrar algumas informações conflitantes que estão me confundindo. Eu tenho aprendido OOP e o que são classes / interfaces abstratas e como usá-las, mas depois estou lendo que é preciso 'favorecer a composição sobre a herança'. Entendo que composição é quando uma …

2
Por que a classe base precisa ter um destruidor virtual aqui se a classe derivada não aloca memória dinâmica bruta?
O código a seguir causa um vazamento de memória: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i …

5
Herança vs propriedade adicional com valor nulo
Para classes com campos opcionais, é melhor usar herança ou uma propriedade anulável? Considere este exemplo: class Book { private String name; } class BookWithColor extends Book { private String color; } ou class Book { private String name; private String color; //when this is null then it is "Book" …
12 java  inheritance  class  null 


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.