问题标签 [abstract-function]
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.
php - 接口和抽象公共函数
在我看来,两者interface
都abstract function
非常相似,
这就像命令必须执行某些方法,
那么有什么区别呢?
php - 如何在 PHP 的非抽象类中声明抽象方法?
报告:
PHP 致命错误:absclass 类包含 1 个抽象方法,因此必须声明为抽象方法或实现其余方法(absclass::fuc)
我想知道实现其余方法意味着什么,如何?
c# - 虚拟方法和抽象方法之间的区别
这是来自MSDN的一些代码:
任何人都可以就抽象方法和虚拟方法之间的区别解释上述代码吗?
php - 如何声明抽象类?
我试图让我清楚地了解抽象方法,所以我编写了这段代码并对其进行了测试。但是当我运行它时出现以下错误:
那么问题出在哪里,为什么?
php - 为什么 PHP 允许抽象静态函数
考虑以下代码:
PhpStorm IDE 在声明中发出警告abstractStaticFunction
,内容如下:
PHP 严格标准:静态函数“abstractStaticFunction”不应该是抽象的。
静态函数不应该是抽象的。
但是,PHP 在解析此类时会继续执行程序并输出以下内容:
PHP 严格标准:静态函数 ExampleClass::abstractStaticFunction() 在第 7 行的 php shell 代码中不应该是抽象的
在我看来,因为 PHP 允许在抽象类上调用静态函数,所以在抽象类上定义抽象静态函数应该是不可能的。
为什么解释器在 PHP 中允许抽象静态函数,当它们是荒谬的?
java - 具有抽象函数的 Java 枚举可以做什么非抽象版本不能?(即是否存在技术差异,或者只是一种模式?)
好的,在堆栈上的这个答案中,答案的海报显示了一个如何在枚举中使用抽象方法的示例。我将在这里为后代重复该答案,尽管稍作修改以更好地说明我的问题的基础。
考虑这个使用抽象方法的枚举:
如您所见,由于“动作”是一个抽象函数,因此每个元素都必须通过枚举的匿名子类定义覆盖。
将此与这个无抽象、功能相同的版本进行对比,它甚至使用完全相同的 API:
在此示例中,您只需指定与默认值不同的特定情况。此外,它将值保存在一个漂亮、清晰易读的列表中,并减少了大量无关代码。
也许我遗漏了一些东西,但是抽象方法方法是否有技术优势?非抽象版本没有给你什么?它有什么额外的能力吗?
注意:我怀疑实际的答案是因为它本身并不是枚举的函数,而是因为枚举被编译为一个类并且一个类支持抽象函数。
但是,我也不确定这是否正确,因为正如其他人所展示的那样,枚举编译为 a
static final class
这意味着它不能被子类化。也许编译器在使用抽象函数时没有添加“final”。不确定,因为我无法查看生成的输出,所以我不能肯定,但这是有道理的。但特别是对于这个问题,具有抽象函数的枚举可以做任何非抽象版本不能做的事情吗?
android - Kotlin 通用抽象函数
我有一个抽象函数,我想在其中获取任何我Activity Presenters
的BaseActivity
所以我的函数应该只接受扩展BasePresenter
视图的类BaseView
但是当我实现这个功能时,我得到一个错误
类型不匹配。
要求:T
找到:LauncherPresenter
我知道这是个愚蠢的问题,但我不知道我错在哪里。
delphi - 检查一个类是否有抽象函数
我想获取从特定基类继承的类列表。
使用 RTTI,我已经可以检查了。但我也想检查这些类中的每一个是否抽象。
我在这里找到了一个解决方案:如何检查 Delphi 类是否被声明为抽象类?
但是,对于 line if GetVirtualMethod(c, i) = @_AbstractError then
,我收到@_AbstractError
一个未知标识符的错误。
所以我的问题是,如何获取AbstractError
过程的地址来检查我的类的任何虚拟方法是否指向该地址?当我查看System.pas
文件时,我可以清楚地看到_AbstractError
里面有。
或者,是否有另一种方法来检查给定方法是实现还是抽象?
我正在使用 Delphi XE6,并为方法GetVirtualMethodCount()
和GetVirtualMethod()
上面引用的解决方案安装了 JCL。