问题标签 [derived-class]

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 投票
8 回答
497 浏览

java - Java:新手式继承问题

假设我有一个基类 B 和一个派生类 D。我希望在我的基类中有一个方法 foo(),它返回一个实例类型的新对象。因此,例如,如果我调用 B.foo() 它返回一个 B 类型的对象,而如果我调用 D.foo() 它返回一个 D 类型的对象;同时,实现仅驻留在基类 B 中。

这可能吗?

0 投票
7 回答
310 浏览

java - 如何更改 Java 中派生类的成员函数的签名

首先,我正在扩展现有的类结构,并且不能更改原始类结构,但需要注意的是:

我想这样做:

正如我之前所说,我无法更改class a,我想保留函数名称displayAlteredValue而不是创建一个新函数。如果可以做到这一点,我只需将 的几个实例更改ab. 我不想花很多时间替换对displayAlteredValue. (是的,我确实意识到存在诸如搜索和替换之类的事情,但是由于其他原因,这样做会有问题)。

有任何想法吗?

0 投票
6 回答
10330 浏览

c# - C#:从基类静态方法确定派生对象类型

在 C# 程序中,我有一个带有静态“创建”方法的抽象基类。Create 方法用于创建类的实例并将其存储在本地以供以后使用。由于基类是抽象的,实现对象总是从它派生的。

我希望能够从基类中派生出一个对象,通过派生类调用静态的Create方法(在基类中实现一次),并创建派生对象的实例。

C# 语言中是否有任何工具可以让我完成这项工作。我当前的后备位置是将派生类的实例作为参数之一传递给 Create 函数,即:

0 投票
9 回答
42702 浏览

c# - C#:如何从派生类的静态方法调用基类的静态方法?

在 C# 中,我有基类 Product 和派生类 Widget。

产品包含一个静态方法 MyMethod()。

我想从静态方法 Widget.MyMethod() 调用静态方法 Product.MyMethod()。

我不能使用 base 关键字,因为它只适用于实例方法。

我可以显式调用 Product.MyMethod(),但如果我稍后将 Widget 更改为从另一个类派生,我必须修改该方法。

C# 中是否有一些类似于 base 的语法允许我从派生类的静态方法调用基类的静态方法?

0 投票
2 回答
5355 浏览

c# - C#:将派生类作为参数传递

我有一个计算图像大小的基类。我从中派生了一个类,并具有将在我的代码中使用的预定义图像大小。虽然我的工作有效,但我有一种强烈的感觉,就是我做得不好。

理想情况下,我只想将 DerviedClass.PreviewSize 作为参数传递给 GetWidth,而不必创建它的实例。

0 投票
30 回答
143138 浏览

c# - 是否可以使用显式类型转换将基类对象分配给派生类引用?

是否可以在 C# 中使用显式类型转换将基类对象分配给派生类引用?

我已经尝试过了,它会产生运行时错误。

0 投票
4 回答
23588 浏览

c# - 在 C# 中的基本构造函数之前执行派生构造函数

我的问题是我想将一个对象传递给派生类,但必须在基类构造函数之前完成,因为基类会立即调用派生类Start()使用该对象的方法。

这是基类的摘录,(为方便起见,从BarcodeScanner重命名)。

这是我正在创建的派生类。

我怀疑您是否可以让 C# 在基本构造函数之前执行派生构造函数;所以我真的只是在寻找一种解决方案,在使用对象之前将对象传递给派生类。

我通过将 Initialize/Start if 块放在MyDerived构造函数中来解决这个问题。但是,还有其他类派生自基类;所以我最终不得不在每个派生类中重复这个初始化/启动代码块。我希望看到修改基类的替代方法。

0 投票
4 回答
28147 浏览

c# - 使用派生类在 C# 中进行序列化

我正在构建一个通知框架,为此我正在序列化和反序列化一个基本类,我想要发送的所有类都将从该类派生。

问题是代码可以编译,但是当我实际尝试序列化这个基本类时,我收到一条错误消息

System.Runtime.Serialization.SerializationException:在程序集“Xxx.DataContract,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”中键入“Xxx.DataContracts.WQAallocationUpdate”未标记为可序列化。

这是代码:

DataContract通知的内容是:

用于序列化数据的代码是:

当我尝试创建消息时:

我收到以下错误:

如果我把 Serializable 标志放在前面DataContract并不能解决问题。


thank you for the fast answer. Sorry that i forgot to put the code of the NotificationData (edited in the main post)

I tried putting the Serializable attribute to both class without success :(

and

**Edit: ** Mea culpa afterall :) You were both right. I forgot to spread the [Serializable] Attribute to all the child class. After updating and compiling, i got no longer the exception. thank you both for your correct answers :)


@Marc Gravel: Actually i thought about what you are suggesting, and created the following DataContractSerializer, but I'm not sure this will work? As my classes use other classes? the big problem with the DataContractSerializer is that you need to specify the type of the object you want to serialize, and as my class uses other class as private fields, that might cause a problem right?

0 投票
6 回答
581 浏览

.net - 从 .NET 中的 Form 类派生

理论上你可以从表单派生,但这是你不应该做的事情吗?我直觉上是这么认为的,但我从来没有听说过这样的规则。

我的意思是一些已经从 Form 派生的具体类。例如,如果我有class MyForm : Form,问题是:我可以从MyForm吗?

0 投票
2 回答
8600 浏览

java - 从泛型 T 派生类

我有一个参数化的休眠 dao,它执行基本的 crud 操作,当参数化用作委托来完成给定 dao 的基本 crud 操作时。

我希望能够在运行时从 T 派生 Class 以在 Hibernate 中创建条件查询,例如:

我知道:

不存在,但是有什么方法可以在运行时从 T 派生正确的 Class 对象?

我看过泛型和反射,但没有想出合适的解决方案,也许我遗漏了一些东西。

谢谢。