Articles of inheritance de

Herança da class Javascript para funções

Eu configurei uma class base como padrão: MyBase = function() { this.m_Stuff = 0; // etc }; MyBase.prototype.MySuperFunction = function (arg1) { alert(“Hello” + arg1); }; Em seguida eu configurei outra class que herda MyBase MyChild = function () { MyBase.call(this); this.m_OtherStuff = 1; // etc }; MyChild.prototype = new MyBase(); // innherit Mas então […]

Ruby: Herdar código que funciona com variables ​​de class

A situação: Eu tenho várias classs que devem conter uma variável com um hash de configuração; um hash diferente para cada class, mas o mesmo para todas as instâncias de uma class. No começo, eu tentei assim class A def self.init config @@config = config end def config @@config end end class B < A; […]

Em que ordem os blocos estáticos e os blocos de boot são executados ao usar inheritance?

Eu tenho duas classs Pai e Filho public class Parent { public Parent() { System.out.println(“Parent Constructor”); } static { System.out.println(“Parent static block”); } { System.out.println(“Parent initialisation block”); } } public class Child extends Parent { { System.out.println(“Child initialisation block”); } static { System.out.println(“Child static block”); } public Child() { System.out.println(“Child Constructor”); } public static void […]

ruby inheritance vs mixins

Em Ruby, uma vez que você pode include múltiplos mixins mas apenas estender uma class, parece que os mixins seriam preferidos à inheritance. Minha pergunta: se você está escrevendo código que deve ser estendido / incluído para ser útil, por que você faria uma aula? Ou dito de outra forma, por que você não faria […]

Como estender uma aula sem ter que usar super no ES6?

É possível estender uma class no ES6 sem chamar o método super para chamar a class pai? EDIT: a questão pode ser enganosa. É o padrão que temos que chamar de super() ou estou faltando alguma coisa? Por exemplo: class Character { constructor(){ console.log(‘invoke character’); } } class Hero extends Character{ constructor(){ super(); // exception […]

Como posso criar dinamicamente classs derivadas de uma class base

Por exemplo, eu tenho uma class base da seguinte forma: class BaseClass(object): def __init__(self, classtype): self._type = classtype Desta class eu derivo várias outras classs, por exemplo class TestClass(BaseClass): def __init__(self): super(TestClass, self).__init__(‘Test’) class SpecialClass(BaseClass): def __init__(self): super(TestClass, self).__init__(‘Special’) Existe uma maneira agradável, pythonic para criar essas classs dinamicamente por uma chamada de function que […]

Por que o construtor padrão é chamado na inheritance virtual?

Eu não entendo porque no código a seguir, quando eu instanciar um object do tipo daughter , o construtor de grandmother() padrão é chamado? Eu pensei que o construtor da grandmother(int) deveria ser chamado (para seguir a especificação do meu construtor de class mother ), ou esse código não deveria ser compilado por causa da […]

qual é o object Class (java.lang.Class)?

A documentação do Java para a Class diz: Class objects de Class são construídos automaticamente pela Java Virtual Machine conforme as classs são carregadas e por chamadas para o método defineClass no carregador de classs. Quais são esses objects de Class ? Eles são os mesmos objects instanciados de uma class chamando new ? Além […]

Por que o modificador “protegido” em Java permite access a outras classs no mesmo pacote?

Qual é a razão pela qual, em Java, um membro com um modificador “protegido” pode não apenas ser acessado pela mesma class e por subclasss, mas também por todos no mesmo pacote? Eu estou querendo saber sobre razões de design de linguagem, não aplicações reais (por exemplo, testes)

Obter todas as classs herdadas de uma class abstrata

Eu tenho uma class abstrata: abstract class AbstractDataExport { public string name; public abstract bool ExportData(); } Eu tenho classs que são derivadas de AbstractDataExport: class XmlExport : AbstractDataExport { new public string name = “XmlExporter”; public override bool ExportData() { … } } class CsvExport : AbstractDataExport { new public string name = “CsvExporter”; […]