问题标签 [abstract-methods]

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 投票
4 回答
161 浏览

java - 理解抽象类和方法并正确覆盖它们

我有一个名为 Answer 的抽象类。它需要是抽象的,因为假设可以有许多不同类型的答案,例如字符串答案、视频答案、音频答案等。

现在在 StringAnswer 中,我想重写这些方法。

getAnswer 给我带来了问题,因为我试图返回一个字符串,但它期待一个答案。在抽象意义上,我想返回一个答案。但是,StringAnswer 的内容显然会是一个字符串。

那么,当它期待一个答案时,我如何将它作为字符串返回?

0 投票
2 回答
19788 浏览

c# - 在继承的抽象类中重写抽象方法

好的,所以基本上我有以下问题:我试图让一个抽象类继承另一个具有抽象方法的抽象类,但我不想在它们中的任何一个中实现抽象方法,因为第三个类继承自两者其中:

我正在尝试将二进制命令与一元命令分开,但不想/不能在其中实现执行方法。我想过让 Binary 覆盖抽象方法(因为它必须),然后抛出一个未实现的异常。如果我让它覆盖,那么我必须声明一个主体,但如果我让它抽象,那么我“隐藏”了继承的方法。

有什么想法吗?

0 投票
1 回答
541 浏览

scala - 混入时,scala编译器可以强制实现抽象特征方法吗?

我有一个抽象方法和具体实现方法的特征,所以是这样的:

现在我混合特征:

BaseClass 不实现抽象方法。当我混合特征时,我希望 scala 编译器强制执行抽象方法(就像 Java 接口一样)。但是没有编译器错误。

我的特殊情况更复杂。我还无法测试运行时会发生什么。

  1. 为什么scala编译器不强制执行抽象方法?
  2. 我可以让 scala 编译器强制执行抽象方法吗?
  3. 我必须在某处添加抽象或覆盖吗?
  4. 当我尝试创建和使用 MyClass 的实例时,运行时会发生什么?
0 投票
1 回答
5000 浏览

go - 没有身体的功能是什么意思?

我正在阅读 package 的代码,time然后我想知道它是如何func After(d Duration) <-chan Time工作的。

我发现代码如下:

所以我找到了startTimer- 函数startTimer没有函数体的定义。

我想知道:

  1. 真正的代码在哪里startTimer
  2. 为什么这里可以存在“抽象方法”
  3. 为什么 Go 的作者会这样写

谢谢!

0 投票
1 回答
1513 浏览

vb.net - MustOverride 原来是一个虚拟方法?

在研究Assembly.GetInterfaces()时,我发现该方法是MustOverride 方法。在我看来,这意味着它对派生类没有默认操作。它基本上只是一个签名,一个抽象方法。然而,我仍然可以在一个类型上使用它,它会返回所有实现的接口,而无需为 MustOverride 方法编写任何代码。

进入 MustOverride 方法的这段代码在哪里?我是否只是通过在创建的类型上调用方法以某种方式间接覆盖了它?

这个问题纯粹是基于研究和发现,除了理解语言的范围之外,我并没有试图做任何事情。

这是我使用的代码:

0 投票
2 回答
8473 浏览

java - 抽象类初始化

我有一个抽象类:

它提供了非抽象方法,然后我想像这样初始化它:

所以在初始化时,它仍然给我一个错误,但是为什么呢?如果我在类中提供一个抽象方法,那么类无法初始化也是可以理解的。在这种情况下,为什么它仍然给出错误?任何帮助,将不胜感激

0 投票
5 回答
352 浏览

java - 如果无法创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义?

抽象类可以同时具有抽象方法和非抽象方法。如果无法创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义?

我知道您可以覆盖子类中的非抽象方法,然后通过子类的对象使用它。但是,如果您这样做,那么首先需要具有实现的非抽象方法是什么?

0 投票
1 回答
2546 浏览

java - 在抽象类中声明具体方法

我需要为toString()我的抽象类的所有具体方法重写方法——在所有情况下都完全相同。所以这就是我想做的(SomeEnum是一个单独的类,它只有一个枚举声明):

抽象类

具体类(示例)

出于某种原因,如果没有运行时异常,我不能这样做,toString()我需要在抽象类中声明抽象方法,然后在每个具体类实现中提供(完全相同)实现。

这种方法有什么问题?

编辑:我得到的例外是NullPointerException然后将我指向ClassA.toString().

0 投票
2 回答
3676 浏览

java - 为什么 abstract 和 strictfp 关键字不能在方法声明中一起使用的原因?

我正在阅读 katherine sierra 的 SCJP。
我知道抽象和最终关键字不能一起使用,因为它们相互矛盾,如书中所述。

但是,我不明白为什么 strictfp 和 abstract 关键字不能一起使用。
我还不知道 strictfp 关键字在 Java 中究竟是如何工作的。

在我看来,可以声明一个抽象的 strictfp 方法,拥有一个子类,并以“strictfp 方式”实现该方法。

这些关键字不能很好相处的原因是什么?
编辑
我已经仔细检查了这本书,它肯定说

因为接口方法是抽象的,它们不能被标记为 final、strictfp 或 native。

来自 Katherine Sierra 的 SCJP。第 21 页。

我的 IDE(Eclipse Juno)也说我不能同时使用 abstract 和 strictfp 关键字。
嗯,为什么不呢?

0 投票
1 回答
501 浏览

acceleo - 如何从 mtl 语言的超类中获取抽象方法

我正在使用 Acceleo-MTL 生成 Java 类。如何从抽象超类中获取所有抽象方法?

为了获得简单的操作和接口,我使用这个:

是否存在像getImplementedInterfaces()接口一样的抽象方法的 getter 方法?