问题标签 [abstract]
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.
c# - 虚拟类中的抽象方法
我有 ac# 类,它有很多虚拟方法,其中一些方法本质上是抽象的(它们在子类中完全实现,基类是空的)。
为了让它编译,我在基类中抛出了一个 InvalidOperationException 并注释了应该做什么。这只是感觉很脏。
有没有更好的方法来设计我的课程?
编辑:它用于将在加拿大运行的应用程序的中间层,一半的方法是通用的,因此是虚拟的。一半的方法是针对特定省份的。
希望这是有道理的
c# - 抽象基类还是接口?似乎都不对
给定以下代码:
你会得到(有点预期的)输出“我们有 2 个酒吧,高兴!”。
这太棒了,我们现在有两倍的地方可以喝啤酒(显然),但我真正想要的是每个班级都有自己的缓存。我不想只在子类中实现这个缓存的原因是因为我的抽象类中还有一些方法需要能够对缓存进行操作(即遍历所有方法)。有没有办法做到这一点?我已经研究过使用接口foo
,但该接口不允许将静态成员定义为接口的一部分。
java - 为什么要将 Java 接口方法声明为抽象的?
我今天使用 Eclipse 的“拉接口”重构特性来创建基于现有类的接口。该对话框提供了将新接口的所有新方法创建为“抽象”方法。
这样做有什么好处?
我认为允许您将接口方法声明为抽象的事实是该语言的一个多余且无害的特性,并不特别鼓励。
为什么 Eclipse 会支持这种风格,或者为什么有人会自愿选择这样做?
澄清:我不是在问为什么接口方法是抽象的,这是显而易见的。我在问为什么要明确选择将它们标记为抽象,因为如果它们在接口中,它们无论如何都是抽象的。
java - 抽象继承和泛型(带扑克牌)
所以,我一直在研究 Java 中的一些扑克牌。(实际上不是为了任何实际目的,我只是喜欢打牌,它们是很好的练习)现在,现在,我正在制作一些卡片结构、套牌、手牌、牌堆等。它们本质上都是一样的,所以我想我想使用一些继承。
我遇到的问题是每个结构的核心是某种类型的集合,但它们并不都使用相同的集合类型。甲板使用堆栈,因为甲板本质上最常用作堆栈。但是,一只手使用 ArrayList(如果有比 ArrayList 更有效的东西可以使用,那也很高兴知道)。因此,在尝试编写抽象类时,我想避免使用抽象方法(因为它违背了创建抽象类以节省代码的最初目的)。但是,出于显而易见的原因,所有这些方法都依赖于核心集合,但我不知道集合是什么类型。这是我迄今为止尝试过的:
首先,请原谅我的变量名。我曾经将所有东西都命名为“theVariable”,但我认为使用“el”更有趣。(您必须以某种方式自娱自乐,对吗?)此外,使用 protected 只是为了简单起见。
现在,一般的想法似乎可行,在抽象类中定义一个变量,然后在子类中定义它的别名,但我不太确定这是一个很好的做法。我遇到的真正问题是构造函数。Pair 中接受卡片数组的构造函数不起作用,因为要添加卡片,我首先需要在父构造函数尝试添加卡片之前创建集合(在本例中为 ArrayList)。有没有办法解决这个问题?这甚至是处理继承的可行方法吗?
latex - 我怎样才能在 Latex 文档的同一页上有摘要和介绍?
我需要更改文档的布局以将我的论文发送到会议。我的摘要目前在单独的页面上。引言应该直接在摘要之后,而不是在单独的页面上。
我怎样才能在同一页上有摘要和介绍?
c# - 编译器如何优化密封类实现的虚方法
我想知道如何优化以下代码。特别是关于虚拟和直接呼叫。我已经评论了我认为一切都是如何优化的,但这些只是猜测。
c# - C#,实现类似方法的“静态抽象”
我最近遇到了一个问题,我似乎需要一个“静态抽象”方法。我知道为什么这是不可能的,但我该如何解决这个限制?
例如,我有一个具有描述字符串的抽象类。由于此字符串对于所有实例都是通用的,因此将其标记为静态,但我想要求从此类派生的所有类都提供自己的 Description 属性,因此我将其标记为抽象:
它当然不会编译。我想过使用接口,但接口可能不包含静态方法签名。
我应该让它简单地成为非静态的,并且总是得到一个实例来获取该类的特定信息吗?
有任何想法吗?
uml - 在 UML 中,您是否必须显示抽象方法的具体实现?
我正在绘制一些 UML,其中具体类继承自定义纯虚拟方法的抽象类。是否也需要在具体类中显示此方法?它是通过从抽象类继承来暗示的。
c# - 抽象类中定义的非抽象事件不会在派生类的设计器中显示
我正在使用下面列出的类来创建一个包装 ComboBox 的 UserControl,该 ComboBox 可以接受 List<T> 并在更改内部 ComboBox 的选择时返回 T 类型的对象。
在代码中一切正常,正如我所期望的那样,但是在使用我的控件时,我无法再让 SelectedItemChanged 事件显示在设计器中。当抽象基类是非抽象的时它工作得很好,但我试图将 5 个本质上重复的控件压缩为一个。
不重要的部分被剪掉了。
编辑:修复了代码破坏问题。结果我的命名空间和表单都被命名为 UserComboTest,所以当它序列化完全限定的类型名称(UserComboTest.UserDropDownList)时,它假定它是表单下的成员或类,而不是命名空间。换句话说,它认为它正在寻找不存在的 UserComboTest.UserComboTest.UserDropDownList。将表单重命名为 UserComboTest.UserComboTestForm 解决了问题的一半。
仍然存在的事实是设计器没有显示 SelectedItemChanged 事件,如果我手动设置它,它会被删除,所以我要么必须在 InitializeComponent 之外设置它,要么弄清楚如何让它被序列化。
java - Java 泛型、扩展泛型和抽象类
我已经设置了以下课程:
一切都很好,直到我到达ResourceImpl
. 我被告知这ProcessImpl
不是<S extends Process<T,S>>
type 的有界参数的有效替代品Resource<T,S>
。
我已经尝试了各种方法来解决这个问题并继续碰壁。
有没有人有任何想法?