问题标签 [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.

0 投票
7 回答
14392 浏览

java - 超类不调用被覆盖的方法吗?

我有以下课程:

当我现在调用 bar.b() 时,我希望它调用 foo 中的重写方法 a()。但是,它确实打印“a”。

0 投票
4 回答
16311 浏览

delphi - Delphi 中的 reintroduce 和 override 指令是什么意思?

overridereintroduce指令有什么区别?我什么时候不应该inherited在被覆盖的方法中使用关键字?

0 投票
6 回答
3849 浏览

c# - C# Virtual 和 Override 的内部工作原理

C# virtual 和 override 机制如何在内部工作的话题已经在程序员中讨论死了......但是在谷歌上半小时后,我找不到以下问题的答案(见下文):

使用一个简单的代码:

我想我不能简单地使用最派生的实例(不修改3个类的方法签名)来获取基类或中间派生类的方法。但我想确认并巩固我的理解......

谢谢。

0 投票
2 回答
203 浏览

.net - Asp.net 中的另一个 OOP 问题

现在我希望以下是可能的,虽然我不完全确定它是这样的......

下面是我希望的设置(在 VB.net 中,请随意用 C# 回答,我应该能够解决):

最后

这是用法:

我认为阴影可能会起作用并打印“使用新搜索”,但它没有,有什么想法吗?我无法覆盖,因为该属性具有与基类属性不同的返回类型。我想在基类中定义一组核心函数,我不必在每个子类中重写。或者这没有多大意义?

谢谢你的帮助!

史蒂夫

0 投票
5 回答
201599 浏览

python - python中的继承和覆盖__init__

我正在阅读“潜入 Python”,并在关于类的章节中给出了这个例子:

然后作者说,如果要覆盖该方法,则必须使用正确的参数 __init__显式调用父级。__init__

  1. 如果FileInfo该类有多个祖先类怎么办?
    • 我必须显式调用所有祖先类的__init__方法吗?
  2. 另外,我是否必须对要覆盖的任何其他方法执行此操作?
0 投票
2 回答
14335 浏览

objective-c - 覆盖超类中的方法的 Objective C 子类

在Objective C中,如果你正在继承一些东西,并且打算覆盖超类上的方法,你应该在你的子类@interface中重新声明超类方法吗?

例如,如果您正在继承 UIViewController(例如 MyViewController),并且您计划覆盖“viewDidLoad”,您应该在 MyViewController @interface 声明中包含该方法,还是只在 MyViewController.m 中实现它?

在我遇到的示例中,我已经看到它以两种方式完成(在子类接口中重新声明该方法,或者不重新声明该方法)。可能没有任何功能差异,但最佳实践是什么?

0 投票
3 回答
1162 浏览

c# - 如何覆盖列表.IsReadOnly 在 C# 中

我试图从 List 派生并有选择地打开和关闭IsReadOnly属性。我希望 Add/Remove/[] 函数会尊重这个属性,但他们没有。这样做的正确方法是什么?

我的派生类有一些额外的属性,所以很遗憾我不能将列表包装在 ReadOnlyCollection 中。

0 投票
5 回答
8540 浏览

java - 覆盖java 1.4中的方法时如何避免“未使用的参数”警告?

在这段代码中:

编译器正确地抱怨MyClassReadOnly.setInnerValue()中未使用的参数(从不读取) innerValue

我不想禁用这种警告,因为它通常非常有用,我也不希望有任何警告以具有高信噪比。

我不能将@SuppressWarnings()构造用作另一个建议的问题,因为它仅适用于 Java 1.4。

我想过插入这样的虚拟代码,但不是很令人满意:

0 投票
4 回答
787 浏览

java - 是否可以在覆盖的方法中有专门的参数?

假设我有一个名为“shape”的抽象父类,并且有多个子类(三角形、正方形、圆形......)。我想在父“shape”类中定义一个所有子类都必须实现的抽象方法,我们称之为“draw”。所以所有形状子类都必须提供“draw()”方法。但是,draw 方法采用“Stencil”类型的参数,并且,并非每个形状子类都可以使用任何模板......

所以有一个抽象的“形状”类、多个形状子类和多个模板。我需要一个在 shape 类中定义的 draw 方法。正方形可能使用 Stencil1,圆形可能使用 Stencil2。

我猜泛型可以解决问题,但我不确定。每个形状子类都需要使用特定的模板定义绘图方法,因为这些类也被其他类使用,编译器应该强制所有程序员使用该类支持的模板调用绘图方法。我们不能定义像“public abstract void draw(Stencil s)”这样的抽象方法,因为程序员可以将任何模板传递给 square 类,而 square 类只支持“Stencil1”

有任何想法吗?

更新1: 应该补充一点,形状类不关心子类使用哪个模板,但由于其他类也使用子类,所以定义draw方法很重要,以便编译器只接受支持的模板.

0 投票
2 回答
374 浏览

c# - 覆盖基类的方法、属性等多远,例如.net TreeNode 类

我正在开发一些应用程序,它使用 TreeView 控件来表示业务对象。目前,业务对象和 TreeNode 之间的链接是通过 TreeNode 的 Tag 属性来维护的。我对此不太满意,因为我认为链接不够“紧密”。例如,可能有一个没有业务对象的 TreeNode 对象,我也想根据业务对象状态更新 TreeNode 图像。因此,我从 TreeNode 派生了我自己的特殊 TreeNode 类:

使用这种最小的方法,每次调用返回 TreeNode 对象的基类的属性或方法时,我都必须强制转换,如“(ActionTreeNode)myNode.Parent”。解决方案是覆盖/覆盖每个方法或属性并返回 ActionTreeNode 类型的对象。您认为,采用最小方法更合适,还是您会努力重新实现所有方法、属性以避免强制转换?谢谢。