问题标签 [abstract-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 投票
14 回答
179940 浏览

java - 如何对抽象类进行单元测试:用存根扩展?

我想知道如何对抽象类和扩展抽象类的类进行单元测试。

我是否应该通过扩展抽象类、存根抽象方法来测试抽象类,然后测试所有具体方法?然后只测试我覆盖的方法,并在单元测试中测试扩展我的抽象类的对象的抽象方法?

我是否应该有一个抽象测试用例可以用来测试抽象类的方法,并在我的测试用例中为扩展抽象类的对象扩展这个类?

请注意,我的抽象类有一些具体的方法。

0 投票
8 回答
3193 浏览

java - Java接口是抽象类吗?

我正在做一些家庭作业,以前试卷上的一个问题要求命名给定 UML 图中的所有抽象类。相当简单,我想。有一个抽象类和三个接口。一般来说,这些接口是否有资格作为抽象类?

0 投票
22 回答
717149 浏览

java - 抽象类可以有构造函数吗?

抽象类可以有构造函数吗?

如果是这样,它如何使用以及用于什么目的?

0 投票
10 回答
1715 浏览

oop - 同时拥有抽象类和接口有什么好处吗?

我从一个名为 ILogin 的通用接口开始。这些接口要求您实现两个属性:UserID 和 Password。我有许多实现此接口的登录类型类。随着我的项目越来越大,我发现许多类都重复了 UserID 和 Password 代码。现在我决定我需要一个基本的登录类。

创建一个实现 ILogin 接口的抽象基本登录类并让我的所有具体类只从抽象类继承并在必要时覆盖是否合适?本来我以为这样不会有问题的。然后我开始认为 ILogin 可能是不需要的,因为它可能只会由我的抽象类实现。

保留抽象类和接口是否有好处?

谢谢!

0 投票
4 回答
2845 浏览

c++ - 如果抽象基类是接口,派生类构造函数中是否必须调用基类构造函数?

是否有必要在派生类构造函数中调用基构造函数?

0 投票
19 回答
89393 浏览

visual-studio - Visual Studio:如何显示从基类继承的所有类?

在 Visual Studio 中,如何显示从基类继承的所有类?

例如,在 ASP.NET MVC 中有几种“ ActionResult ”类型——它们都继承自/实现基类ActionResult

看起来除非您只是“知道”View并且Json是有效ActionResult类型,否则您无法轻松找到此信息。

请证明我错了。

对象浏览器中有什么东西可以很容易找到吗?

我什至愿意为 Visual Studio 之外的工具提供建议,以发现有关各种类的这些信息。例如:Resharper 中有什么可以帮助我的吗?

0 投票
11 回答
14480 浏览

java - 助手/实用程序类应该是抽象的吗?

我经常发现自己从类中提取常见行为到只包含一组静态方法的帮助程序/实用程序类中。我经常想知道是否应该将这些类声明为抽象类,因为我真的想不出实例化这些类的正当理由?

将这样的类声明为抽象类的优点和缺点是什么。

0 投票
7 回答
4714 浏览

c++ - 从具体类派生抽象类

假设我们有一个具体的class Apple. (Apple 对象可以被实例化。)现在,有人来了,并class Peach从 Apple 派生了一个抽象。它是抽象的,因为它引入了一个新的纯虚函数。Peach 的用户现在被迫从中派生并定义这个新功能。这是一种常见的模式吗?这是正确的做法吗?

样本:

现在假设我们有一个具体的class Berry. class Tomato有人从贝瑞那里得到了一个摘要。它是抽象的,因为它覆盖了 Berry 的一个虚函数,并使其成为纯虚函数。Tomato 的用户必须重新实现之前在 Berry 中定义的功能。这是一种常见的模式吗?这是正确的做法吗?

样本:

注意:名称是人为的,不反映任何实际代码(希望如此)。写这个问题没有损害任何成果。

0 投票
1 回答
2863 浏览

f# - 如何在 F# 中实现抽象类?

在我看过这个PDC 会议之后,我想尝试学习一点 F#。所以我认为最好的方法是用 F# 重写我已经在 C# 中完成的东西,但我的大脑只是拒绝在功能模式下思考。我有这个抽象类,它有一些抽象方法和一些虚拟方法。我也想覆盖一些虚拟方法。这个类是用 C# 编写并编译的,我不打算用 F# 重写它。所以我的问题是:

  1. 有没有人有一个关于如何实现抽象类、抽象方法和虚拟方法的简短示例
  2. 我可以重载构造函数吗?
  3. 如果我想在 dll 中编译它并使其可用于我的基于 C# 的程序,是否有任何限制。

任何帮助,将不胜感激。


更新:我真的很感谢布赖恩的回答,但我仍然不清楚,所以我想澄清一下。假设这是我用 C# 编写并用 dll 编译的抽象类。如何在 F# 中实现它?


对于正在寻找一些 F# 资源的人的一些文档: - 如果任何其他 F# 有兴趣获得一些文档,我在 Don Syme(F# 的创建者)他的书 F# Expert 的博客免费章节中找到了一些文档。您可以下载 doc 格式的文件。

其他一些可能感兴趣的资源:

0 投票
17 回答
543302 浏览

c++ - 如何在 C++ 中声明接口?

如何设置代表接口的类?这只是一个抽象基类吗?