Por que preferir composição a herança? Que trade-offs existem para cada abordagem? Quando você deve escolher herança e não
Herança é o sistema de programação orientada a objetos que permite que objetos suportem operações definidas por tipos anteriores sem precisar fornecer sua própria definição. É o principal vetor do polimorfismo na programação orientada a objetos.
Por que preferir composição a herança? Que trade-offs existem para cada abordagem? Quando você deve escolher herança e não
Ao planejar meus programas, geralmente começo com uma cadeia de pensamento assim: Um time de futebol é apenas uma lista de jogadores de futebol. Portanto, eu devo representá-lo com: var football_team = new List<FootballPlayer>(); A ordem desta lista representa a ordem em que os...
Quais são as diferenças entre esses dois fragmentos de código? Usando type(): import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else() Usando isinstance(): if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b,...
Existe algum motivo para uma declaração de classe herdar object? Acabei de encontrar um código que faz isso e não consigo encontrar uma boa razão para isso. class MyClass(object): # class code
A página Escopo de referência da API diz: Um escopo pode herdar de um escopo pai. A página Escopo do Guia do desenvolvedor diz: Um escopo (prototipicamente) herda propriedades do seu escopo pai. Então, um escopo filho sempre herda prototipicamente de seu escopo pai? Existem exceções?...
Qual é a diferença entre public, privatee protectedherança em C ++? Todas as perguntas que encontrei no SO tratam de casos
Em " Programming Python ", Mark Lutz menciona "mixins". Eu sou de experiência em C / C ++ / C # e nunca ouvi o termo antes. O que é um mixin? Lendo nas entrelinhas deste exemplo (ao qual vinculei porque é bastante longo), presumo que seja um caso de usar herança múltipla para estender uma classe...
Eu sou praticamente novo em programação orientada a objetos Python e tenho problemas para entender a super()função (novas classes de estilo), especialmente quando se trata de herança múltipla. Por exemplo, se você tiver algo como: class First(object): def __init__(self): print "first" class...
Como configuro uma classe que representa uma interface? Isso é apenas uma classe base
Esta figura mostra novamente que todo objeto tem um protótipo. A função de construtor Foo também possui a sua própria __proto__, Function.prototype, e que, por sua vez, também faz referência, por sua __proto__propriedade, novamente ao Object.prototype. Assim, repita, Foo.prototype é apenas uma...
Estou um pouco confuso sobre como os genéricos Java lidam com herança / polimorfismo. Suponha a seguinte hierarquia - Animal (Pai) Cão - Gato (Crianças) Então, suponha que eu tenha um método doSomething(List<Animal> animals). Por todas as regras de herança e polimorfismo, eu assumiria que...
Alguém o mencionou no IRC como o problema da
Explique em um idioma fácil de entender ou em um link para algum
Ao criar uma hierarquia de objetos simples em Python, eu gostaria de poder invocar métodos da classe pai de uma classe derivada. No Perl e Java, há uma palavra-chave para this ( super). No Perl, eu devo fazer isso: package Foo; sub frotz { return "Bamf"; } package Bar; @ISA = qw(Foo); sub...
Como chamo a função pai de uma classe derivada usando C ++? Por exemplo, eu tenho uma classe chamada parente uma classe chamada childderivada do pai. Dentro de cada classe há uma printfunção. Na definição da função de impressão da criança, gostaria de fazer uma chamada para a função de impressão...
Qual é a diferença entre: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() e: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) Vi superser usado bastante em classes com apenas uma herança. Percebo por que você o usaria em herança...
Se classe Be classe Cestendem classe Ae eu tenho um objeto do tipo Bou C, como posso determinar de que tipo é uma
Qual é a diferença? Quando devo usar qual? Por que existem
Em uma de minhas entrevistas, fui solicitado a explicar a diferença entre uma classe Interface e uma aula Abstrata . Aqui está a minha resposta: Os métodos de uma interface Java são implicitamente abstratos e não podem ter implementações. Uma classe abstrata Java pode ter métodos de instância...
Essa pode ser uma pergunta genérica de POO. Eu queria fazer uma comparação genérica entre uma interface e uma classe abstrata com base em seu uso. Quando alguém iria querer usar uma interface e quando alguém iria querer usar uma classe abstrata