问题标签 [inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
4368 浏览

sql - 继承数据库?

有没有办法在数据库中使用继承(特别是在 SQL Server 2005 中)?

假设我有几个像CreatedOnCreatedBy这样的字段,我想将其添加到我的所有实体上。我正在寻找一种替代方法,而不是将这些字段添加到每个表中。

0 投票
10 回答
1584 浏览

c++ - 继承和多态 - 易用性 vs 纯度

在一个项目中,我们的团队正在使用对象列表对应该以类似方式处理的数据集执行大规模操作。特别是,不同的对象在理想情况下会表现相同,这很容易通过多态性实现。我遇到的问题是继承意味着是一种关系,而不是有一种关系。例如,几个对象有一个伤害计数器,但是为了使它易于在对象列表中使用,可以使用多态性——除非这意味着一个不正确关系。(人不是伤害计数器。)

我能想到的唯一解决方案是让类的成员在隐式转换时返回正确的对象类型,而不是依赖于继承。放弃is a / has a Ideal 以换取易于编程会更好吗?

编辑:更具体地说,我使用的是 C++,因此使用多态性将允许不同的对象“行为相同”,因为派生类可以驻留在单个列表中并由基的虚函数操作班级。使用接口(或通过继承模仿它们)似乎是我愿意使用的解决方案。

0 投票
10 回答
1225802 浏览

c# - 在 C# 中调用基本构造函数

如果我从基类继承并想将继承类的构造函数中的某些内容传递给基类的构造函数,我该怎么做?

例如,如果我从 Exception 类继承,我想做这样的事情:

基本上我想要的是能够将字符串消息传递给基异常类。

0 投票
2 回答
4059 浏览

java - 如果可能的话,如何使用通用参数覆盖 EJB 3 会话 bean 方法?

假设您有以下 EJB 3 接口/类:

然后是另一个访问 bean 的FooRepositorybean:

FooRepository但是,当调用 bean的 delete 方法时,不会执行覆盖方法。相反,仅执行中定义的删除方法的实现AbstractRepository

我做错了什么,或者仅仅是 Java/EJB 3 的限制,泛型和继承还不能很好地结合在一起?

0 投票
7 回答
20386 浏览

c# - 在 C# 中,您需要调用基本构造函数吗?

在 C# 中,如果我有一个带有默认构造函数的继承类,我必须显式调用基类的构造函数还是隐式调用它?

0 投票
3 回答
843 浏览

c# - 在命名空间结构中公开继承层次结构是一个坏主意吗?

我有一组相互关联的类,它们都被一起覆盖以创建特定的实现。我想知道将相互关联的子类包含在命名空间中是否是个好主意。

例如,考虑以下命名空间和类:

构建命名空间的最佳方式是什么?在命名空间中暴露继承似乎是不可避免的,因为基类并不真正属于 Protocol.Tcp 命名空间或 Protocol.Ftp 命名空间。

0 投票
7 回答
56645 浏览

c# - XML 序列化和继承类型

继上一个问题之后,我一直致力于让我的对象模型序列化为 XML。但是我现在遇到了一个问题(平息惊喜!)。

我遇到的问题是我有一个集合,它是抽象基类类型,由具体派生类型填充。

我认为只需将 XML 属性添加到所有涉及的类就可以了,一切都会很好。可悲的是,事实并非如此!

所以我在谷歌上做了一些挖掘,现在我明白为什么它不起作用了。事实上,XmlSerializer正在做一些巧妙的反射,以便将对象序列化到 XML 或从 XML 序列化,并且由于它基于抽象类型,它无法弄清楚它到底在与什么对话。美好的。

我确实在 CodeProject 上遇到过这个页面,看起来它可能很有帮助(尚未完全阅读/使用),但我想我也想把这个问题带到 StackOverflow 表中,看看你是否有任何整洁的黑客/技巧,以便以最快/最轻的方式启动和运行。

我还应该补充的一件事是我不想走XmlInclude条路。与它的耦合太多了,而且系统的这个领域正在大力开发,所以这将是一个真正的维护头痛!

0 投票
9 回答
1349 浏览

c# - 有没有办法让构造函数只对 C# 中的父类可见?

我有一组继承自我创建的抽象类的类。我想将抽象类用作创建抽象类的具体实现实例的工厂。

有没有办法从除父类之外的所有代码中隐藏构造函数。

我想基本上这样做

但我想阻止任何人直接实例化 2 个具体类。我想确保只有 MakeAbstractClass() 方法可以实例化基类。有没有办法做到这一点?

更新
我不需要从 Abstract 类之外访问 ConcreteClassA 或 B 的任何特定方法。我只需要我的 Abstract 类提供的公共方法。我真的不需要阻止具体类被实例化,我只是想避免它,因为它们没有提供新的公共接口,只是抽象类内部一些非常具体的东西的不同实现。

对我来说,最简单的解决方案是像 samjudson 提到的那样创建子类。但是我想避免这种情况,因为它会使我的抽象类文件比我希望的要大得多。我宁愿将课程分成几个文件以进行组织。

我想这没有简单的解决方案......

0 投票
3 回答
4700 浏览

c# - 继承需要存储子类特定数据的数组的最佳方法是什么?

我正在尝试设置类似于以下的继承层次结构:

我只想将 MotorcycleAxle 对象存储在 Motorcycle 对象的 Axles 数组中,并将 CarAxle 对象存储在 Car 对象的 Axles 数组中。问题是没有办法覆盖子类中的数组来强制其中一个。理想情况下,类似以下内容对 Motorcycle 类有效:

但是覆盖时类型必须匹配。我怎样才能支持这种架构?我是否只需要在访问 Axles 成员的任何地方进行大量运行时类型检查和转换?我不喜欢添加运行时类型检查,因为您开始失去强类型和多态性的好处。在这种情况下必须至少进行一些运行时检查,因为 WheelAttached 和 Left/RightWheelAttached 属性取决于类型,但我想最小化它们。

0 投票
3 回答
476 浏览

.net - 在从基本表单继承的表单上访问组件

我项目中的许多表单都继承自基本表单。很容易获得派生表单的 Controls 集合,但我还没有找到访问 Components 集合的简单方法,因为 VS 将其标记为私有。

我认为这可以通过反射来完成,但我不确定如何最好地去做,因为之前没有使用过反射。

现在,我正在使用一种笨拙的解决方法,其中我覆盖了一个函数 GetComponents 并返回一个我感兴趣的组件数组。这显然容易出错,因为很容易忘记实现被覆盖的函数或在添加组件时更新它。

如果有人有任何提示或可以提出更好的方法,我会很高兴听到。