Tag: inheritance

Javalogging与抽象类

我正在开发一个项目,目前正在使用log4j来实现一些日志logging,我对如何执行日志感到好奇。 我踢的两个实现如下: 第一select 使用超类的单个日志来处理该类和所有子类: public abstract class AbstractFoo { protected static Log LOG = LogFactory.getLog(AbstractFoo.class); … } public class Foo extends AbstractFoo { public void someMethod() { LOG.info("Using abstract log"); } } 第二个选项 为每个class级使用单独的日志,super和subs: public abstract class AbstractFoo { private static Log LOG = LogFactory.getLog(AbstractFoo.class); … } public class Foo extends AbstractFoo { private static […]

AutoMapper和inheritance – 如何映射?

有这种情况: Public class Base { public string Name; } Public Class ClassA :Base { public int32 Number; } Public Class ClassB :Base { Public string Description;} Public Class DTO { public string Name; public int32 Number; Public string Description; } 我有一个IList<Base>我的地图是: AutoMapper.Mapper.CreateMap<IList<Base>, IList<DTO>>() .ForMember(dest => dest.Number, opt => opt.Ignore()) .ForMember(dest => dest.Description, opt => opt.Ignore()); […]

isPrototypeOf和Javascript中的instanceof有什么区别?

在我自己的一些旧代码中,我使用了以下内容: Object.prototype.instanceOf = function( iface ) { return iface.prototype.isPrototypeOf( this ); }; 然后我做(例如) [].instanceOf( Array ) 这工作,但似乎下面会做同样的: [] instanceof Array 现在,这当然只是一个非常简单的例子。 所以我的问题是: a instanceof b 总是和b.prototype.isPrototypeOf(a)吗?

C#是否具有私有和受保护inheritance的概念?

C#是否拥有私有/受保护inheritance的概念,如果不是,为什么? C ++ class Foo : private Bar { public: … }; C# public abstract NServlet class : private System.Web.UI.Page { // error "type expected" } public abstract NServlet class : private System.Web.UI.Page { // error "type expected" } 我正在一个.aspx页面中实现一个“servlet like”的概念,我不希望具体的类能够看到System.Web.UI.Page基础的内部。

Mixin类__init__函数不会自动调用吗?

我想使用Mixin来总是添加一些初始化function到我的子类,每个类都从不同的API基类inheritance。 具体来说,我想创build多个不同的子类,从这些不同的API提供的基类之一inheritance,以及一个Mixin,它将始终以相同的方式执行Mixin初始化代码,而无需代码复制。 但是,似乎Mixin类的__init__函数永远不会被调用,除非我们在Child类的__init__函数中明确地调用它,这是不太理想的。 我已经build立了一个简单的testing用例: class APIBaseClassOne(object): def __init__(self, *args, **kwargs): print (" base ") class SomeMixin(object): def __init__(self, *args, **kwargs): print (" mixin before ") super(SomeMixin, self).__init__(*args, **kwargs) print (" mixin after ") class MyClass(APIBaseClassOne): pass class MixedClass(MyClass, SomeMixin): pass 正如你在下面的输出中看到的,Mixin函数的init永远不会被调用: >>> import test >>> test.MixedClass() base <test.MixedClass object at 0x1004cc850> 有没有办法做到这一点(在调用Mixin中有一个初始化函数),而不写每个子类来显式调用Mixin的init函数? (即,不必在每个class级都做这样的事情:) class MixedClass(MyClass, […]

inheritance父构造函数参数

我正在浏览一个类似的话题的讨论,但无法find我的情况… 我正在尝试调用具有参数的父类构造函数…似乎无法正确使用它。 我有一个PhysicsBody超类,它把一个PhysicsBody作为唯一的构造参数: function PhysicsBody(aNode) { this.userData = aNode; // … } 这个PhysicsBodyinheritance了一个DynamicBody类。 构造函数也只需要一个参数作为参数…就像我会在Java中做的那样,我很想调用一些等同于"super(aNode");东西"super(aNode"); 似乎无法找出如何。 以下是DynamicBody类: // Wanted to give "new PhysicsBody(this, aNode)", but that fails! DynamicBody.prototype = new PhysicsBody(); DynamicBody.prototype.constructor=DynamicBody; function DynamicBody(aNode) { // calling the parent constructor fails too: // PhysicsBody.prototype.constructor.call(this, aNode); //… }

何时使用委托而不是inheritance?

有人可以解释什么时候我想要使用代表团而不是inheritance?

如何从基类中find子类名?

在run-time ,在base class内部,如何find当前的子类名?

调用元类时出错:函数()参数1必须是代码,而不是str

今天早些时候我尝试了一下线程化的条件,但是没有成功。 当我尝试对threading.Condition进行子类化时,下面是Python解释器的输出: >>> import threading >>> class ThisWontWork(threading.Condition): … pass … Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Error when calling the metaclass bases function() argument 1 must be code, not str 有人可以解释这个错误? 谢谢!

工会作为基础class

该标准定义联盟不能作为基类使用,但有没有具体的推理呢? 据我了解,联盟可以有构造函数,析构函数,成员variables和方法来操作这些varibales。 总之,一个联盟可以封装一个数据types和状态,可以通过成员函数来访问。 因此,在大多数情况下,它可以作为一个类来使用,如果它可以作为一个类,那么为什么它不能作为一个基类呢? 编辑:虽然答案试图解释的推理,我仍然不明白联盟作为一个派生类是最糟糕的时候,联盟只是一个类。 所以希望得到更具体的答案和推理,我会推这个奖金。 已经发布的答案没有冒犯,感谢那些!