问题标签 [overriding]
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.
javascript - javascript中的“方法重载”
所以我承认我是 javascript 新手,并且我来自 C.+ 背景(“嗨,我是 Bob,我是基于类的静态语言用户”,合唱“嗨 Bob!”)。
我发现我经常最终编写如下函数:
(可能有三种这样的情况)。或者,或者,我将差异写入名称:
(用“RealArg”代替一些语义上内容丰富的短语)。
这种事情有更好的模式吗?
javascript - 使用 JavaScript 原型调用方法
如果它被覆盖,是否可以从 JavaScript 中的原型方法调用基本方法?
java - Java 中的@Override 是什么?
@Override
除了让编译器检查超类是否具有该方法之外,是否有任何理由注释方法?
c# - 除了这样,为什么我不能访问受 C# 保护的成员?
这段代码:
生成此错误:
无法通过“C”类型的限定符访问受保护的成员“CF(D)”;限定符必须是“D”类型(或派生自它)
他们到底在想什么?(更改该规则会破坏某些东西吗?)除了公开 F 之外,还有其他方法吗?
编辑:我现在明白了为什么会这样(谢谢Greg)但我仍然对理性感到有些困惑;给定:
为什么D不能调用 EF?
错误消息已编辑,因此我可能在其中输入了错字。
c++ - 子类化时覆盖静态变量
我有一个类,我们称它为 A,在该类定义中我有以下内容:
也就是说,我声明了一个指向路径对象的静态(类范围)指针;此类的所有实例现在都将具有相同的共享数据成员。我希望能够以此类为基础,将其子类化为更专业的形式,分层行为,并且每个类都有自己独特的路径对象(但不必重复计算边界框或调用绘画例程等无聊的部分)。
如果我将它子类化以创建一个类 F(例如),我希望 F 使用从 A 继承的绘图例程,但要使用在 F 中声明的静态(类范围)路径对象。我尝试在上面的声明私有部分(并在派生类 F 中重复它),并尝试将它放在受保护部分中,所有这些都没有任何乐趣。
我可以看到为什么会这样:
指的是 A::path 而不是 F::path,即使对象属于 F 类。
有没有一种优雅的方法来解决这个问题,并允许每个类维护一个静态路径对象,同时仍然使用基类中定义的绘图代码,并使所有类(可能除了基类)都是真实的和可实例化的?
actionscript - 如何在动作脚本中在运行时覆盖 setter 函数?
我有一个带有 setter 和 getter 函数的 AS 类。我需要调整这个类的一个实例,以便它的 setter 函数在将输入分配给局部变量之前对其进行处理。
或者,以更详细的方式,在下面的示例中我应该使用什么来代替 $$$?
c - 覆盖 C 中的函数调用
为了记录调用,我想覆盖对各种 API 的某些函数调用,但我也可能想在将数据发送到实际函数之前对其进行操作。
例如,假设我getObjectName
在源代码中使用了数千次调用的函数。有时我想暂时覆盖此函数,因为我想更改此函数的行为以查看不同的结果。
我像这样创建一个新的源文件:
我像往常一样编译我的所有其他源代码,但在与 API 的库链接之前,我先将它与这个函数链接起来。这很好用,除非我显然不能在我的覆盖函数中调用真正的函数。
有没有更简单的方法来“覆盖”一个函数而不会出现链接/编译错误/警告?理想情况下,我希望能够通过编译和链接一个或两个额外文件来覆盖该函数,而不是摆弄链接选项或更改我程序的实际源代码。
android - Android 覆盖显式意图
我的应用程序需要一个intent-filter
响应Intent
具有它的组件集(一个明确的意图)的一个。这是一个例子。
只是一个简单的intent-filter
不会做 - 因为它Intent
是为一个特定的组件(Activity
,)制作的,它只是启动它而不寻找意图。有没有办法做到这一点?
谢谢,Isaac Waller
PS:请不要回答“不”。
perl - 在 Perl 中检测被覆盖的方法
上周,我因意外覆盖子类中的方法而被咬了两次。虽然我不喜欢继承,但我们(ab)在我们的应用程序中使用它。我想做的是提供一些声明性语法来说明方法正在覆盖父方法。像这样的东西:
这里有几个问题。首先,如果方法加载以某种方式延迟(例如,通过 AUTOLOAD 加载的方法或稍后安装在符号表中的方法),则不会检测到这些方法。
遍历继承树也可能会变得同样昂贵。我使用Class::Sniff执行此操作,但它并不适合运行代码。我可以遍历继承树并简单地匹配相应符号表中已定义 CODE 槽的位置,这样会更快,但如果方法缓存无效,那么如果我要缓存这些结果,就会中断。
所以我有两个问题:这是一种合理的方法吗?是否有一个钩子可以让我检查方法缓存是否已更改?(在“perldoc perlobj”中搜索“缓存”)。
当然,这不应该破坏生产代码,我正在考虑仅在 TEST_HARNESS 环境变量处于活动状态时让它失败或发出警告(并且如果生产代码要设置 TEST_HARNESS,则有一个明确的环境变量强制它处于非活动状态出于某种原因的环境变量)。
visual-studio - Visual Studio & SubVersion : 机器特定文件呢
例如,我们有一个带有 app.config 文件的单元测试项目。app.config 文件被配置为在我们的构建服务器上工作。但是,如果我们想在本地(使用本地数据库)运行我们的测试,我们必须更改 app.config...每次...有没有办法永远不更改 app.config,而是让另一个文件覆盖应用程序。配置配置?(这样没有人会意外地在颠覆中提交损坏的 app.config 吗?)
(对于 web.config 来说,同样的偏离路线,...)
谢谢,列文卡登