问题标签 [member-hiding]

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 投票
1 回答
110 浏览

c# - 时间:2019-05-01 标签:c#inheritance trickery with a hierachy

我有一个层次结构的组织。基本上,它们都共享一个共同的基础,然后每个类都将声明一个名称和 ID。每个派生类都会选择以前的名称和 ID。

我需要派生类能够显示继承类的 Name 属性。我正在尝试在 get 访问器中使用 base.Name .. 似乎不起作用。

我正在使用 NHibernate,所以属性必须是虚拟的。这可能是个问题。

我试图通过使用“新”来“隐藏” Name 属性,但后来我认为 base.Name 是新版本。

等级制度是这样的……

我需要..

  • District.ConferenceName 返回 Conference.Name
  • Conference.JurisdictionName 返回 Jurisdiction.Name

我用谷歌搜索和stackoverflowed,找不到答案。谢谢你的帮助

为清楚起见编辑:

我需要这些类看起来像这样。

  • 区 -> 名称、DistrictId、ConferenceId、ConferenceName、JurisdictionId、JurisidictionName
  • 会议 -> 名称、ConferenceId、JurisdictionId、JurisdictionName
  • 管辖权 -> 名称,管辖权 ID
0 投票
2 回答
424 浏览

c# - 在代码中隐藏基类中的成员是一种难闻的气味吗?

对我来说,隐藏基类中的成员以破解某些东西而不是重构糟糕的设计听起来更像是一个例外......

也许我错了。但...

使用“new”关键字隐藏基类中的成员是否是代码异味?

0 投票
1 回答
899 浏览

asp.net-mvc-3 - 需要帮助解释 Readonly\ScaffoldColumn(false)

请帮助解决这样一个问题,不要严格判断,因为我是 MVC 的新手:我有一个模型,用于在我的数据库中按 ID 存储用户名

, 一个控制器

添加和编辑视图添加效果很好,问题是关于我使用的编辑

编辑我的模型。当试图转到这个视图时,我看到了一个 ID 和用户名的编辑器,但是如果我填写 ID - 我有错误,因为在 DB 中没有具有此类 ID 的条目。好的。让我们寻找隐藏编辑器的属性。[ScaffoldColumn(false)] 类似于标记是否为 Id 呈现编辑器。将它应用到我的模型中,我的视图中发布了“0”id。尝试另一个 attr。[ReadOnly(true)] 使字段成为只读字段。但与此同时,我在发布 ID 时得到了“0”。修改视图我为模型中的每个字段放置了一个编辑器

但是使用它是危险的,因为一些用户可以通过 post-request 发布错误的 Id。

我不能使用 [ScaffoldColumn(false)] 在控制器的 [Httppost] 操作中应用 Id,通过在 DB 中搜索适当的用户条目,因为名称已更改。我不敢相信 @Html.HiddenFor 是唯一的出路。但找不到一个:(

0 投票
3 回答
813 浏览

java - Java 字段隐藏

在以下场景中:

学生“隐藏人的ID字段。

如果我们想在内存中表示以下内容:

john 对象是否有两个单独的内存位置用于 storint Person.ID 和它自己的?

0 投票
3 回答
6635 浏览

java - Java 字段隐藏

我想知道说一个字段隐藏在 2 个 java 类之间是什么意思,以及在运行代码时根据结果输出意味着什么?

我有一个带有 aprotected static boolean field = false和一个子类的抽象类,该类具有一个具有相同名称但不是静态的布尔字段并设置为true.

如果我有这个代码:

超类中的布尔字段和子类中的布尔字段的值是多少?子类字段false在上面的分配之后是否保持不变?

0 投票
9 回答
19456 浏览

c# - 覆盖和隐藏之间的确切区别

任何人都可以根据内存和引用来告诉覆盖和隐藏的工作。

这里的内存是 B 类,但在第二个语句aa.Test2中将调用 A 类的方法。为什么?如果 B 有内存,那么应该调用 B 的方法(在我看来)。

任何非常深入和完整地描述这个基本原理的链接/练习都会有很大的帮助。

0 投票
1 回答
305 浏览

java - Java中具有继承的可变参数

假设我有这样的课程Foo

现在假设我添加这个:

这是否意味着我不能创建一个Bar<T, Object[]>,因为它会创建两个invoke()具有“基本上”相同签名的方法?或者在这种情况下会Bar.invoke()安全地隐藏(因为运行时,采取而不是of )?Foo.invoke()Bar.invoke()ObjectObject[]Foo.invoke()

与此相关:转发Bar.invoke()是否Foo.invoke()安全无虞?

0 投票
2 回答
7340 浏览

java - Java继承中的隐藏字段

在一个类中,与超类中的字段同名的字段会隐藏超类的字段。

有人可以为我解释一下结果吗?

0 投票
3 回答
187 浏览

java - 在java中说“实例变量没有被覆盖”是什么意思?

我知道field hidingjava中调用的概念。但是我仍然对实例变量没有被覆盖感到困惑。

根据我目前的知识,覆盖超类的方法意味着JVM将调用子类的覆盖方法,尽管子类可以使用超类的方法。

field hiding通过链接阅读了类似的内容:-隐藏字段

因此,无论如何,如果我们更改子类中继承的实例变量的值,我们就会覆盖该实例。

我很困惑请帮忙。


我正在使用以下超类:-

}

它有 Tiger、cat、dog、hippo 等子类。这些子类覆盖 makeNoise()、eat 和 roam() 方法。

但是每个子类也为实例变量使用一组不同的值。

因此,根据我的困惑,我有点重写超类 Animal 的所有实例变量和 3 个方法;super并且我仍然可以使用关键字为子类提供超类实例变量。

0 投票
1 回答
465 浏览

c# - 在 C# 中重新定义派生/嵌套类中的静态字段

我有一个带有静态字段和静态函数的类,例如这样

该静态方法的输出和输入类型在这里并不重要,唯一相关的是输出——当然,尽管依赖于输入——取决于静态字段的内容。该方法的实现在派生类中根本没有改变,我想要的只是改变那个非常静态的字段。但是每当我打电话时

或 var res2 = A.Nested2.DoSomethingThatDependsOnEventField(...);

从方法中引用了基类 A 中不正确的静态字段。也就是说,静态字段的预期“隐藏”/“重新定义”protected new static string[] _eventField = ... 不起作用 -为什么会这样?