问题标签 [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.
c++ - c++中的重写函数
输出是:
为什么第二个调用b2->some_func(f1)
调用Base
类的函数,即使类中有一个带有浮点作为参数的版本Derived
?
python - Python:在派生类中隐藏基类的成员
如何在我的派生类中覆盖基类的成员,以便访问此类成员导致调用派生成员?考虑以下示例?__tmp
被覆盖B
并且应该在调用的情况下返回tmp()
java - 是否可以从 Java 中的外部对象访问隐藏字段?
考虑一个类,对超类隐藏成员。如果实现克隆,那么如何正确更新两个成员?
c++ - 关于隐藏超类成员的问题
在我的子类中,我通过在我的子类中重新定义它来隐藏一个超类成员变量或类型,并想知道使用子类隐藏的成员变量的函数调用会发生什么。举个例子:
当我执行以下操作时会发生什么:
Q1:这会返回A::x_
还是B::x_
??
怎么样:
Q2: b.x_vector_ 是 typevector<A::X>
还是vector<B::X>
??
c# - 在 c# 的每个派生类中都有一个更具体的接口
我试图举一个尽可能简单的例子,但这个问题的本质至少对我来说是相当混乱的。
为了重用代码而不是重复我自己,我有一个IStudent
实现另一个接口的接口IPerson
。
我有一个类实现IStudent
现在我有一个CommunityBase
具有类型字段的抽象类IPerson
我还有一个派生自CommunityBase
被调用的类University
。因为University
是一个更具体的类我想使用更具体的接口。所以代码如下:
为了使所有这些工作,new
应为IStudent member
. 此外,我需要在基类中分配该member
字段一次,然后在派生类中再次分配。
我想要做的是member
在构造函数中分配一次,CommunityBase
但是这样我就不能使用类中定义的属性或IStudent
方法University
。
上述所有代码都按预期编译和工作,但我想知道是否有一种更简单、更简单/易于阅读的方法来做到这一点。从我读到的内容来看,new
如果我继续使用此代码,人们倾向于避免使用隐藏关键字,是否会有任何潜在问题?
java - 来自父类和实现接口的具有相同名称的字段,并且仅在一个类差异内
研究 2 代码片段
片段1:
此代码编译正常。
片段2
结果:带有消息的编译错误
解析度
对我来说,两个片段看起来都一样。
为什么我看到不同的结果
Abimaran Kugathasan 更新
你说:
接口中的字段是隐式公共静态的,并且没有继承到子类
反例:
我不能这样写
为什么?我只处理静态内容。
java - Java名称隐藏:艰难的方式
我有一个非常难以解决的名称隐藏问题。这是解释问题的简化版本:
有一个类:org.A
然后有一堂课net.foo.X
现在,这是继承自A
并想要调用的有问题的类net.foo.X.doSomething()
如您所见,这是不可能的。我不能使用简单名称X
,因为它被继承的类型隐藏。我不能使用完全限定名称net.foo.X
,因为net
它被继承的字段隐藏。
只有类B
在我的代码库中;类net.foo.X
和org.A
是库类,所以我不能改变它们!
我唯一的解决方案是这样的:我可以调用另一个类,然后调用X.doSomething()
; 但是这个类只会因为名字冲突而存在,看起来很乱!有没有我可以直接调用X.doSomething()
的解决方案B.doSomething()
?
在允许指定全局命名空间的语言中,例如,global::
在 C# 或::
C++ 中,我可以简单地net
使用这个全局前缀作为前缀,但 Java 不允许这样做。
java - 子类变量没有隐藏超类中的变量
我刚刚了解到,如果有两个变量,一个在超类中,一个在子类中,它们共享相同的名称,分配给子类中变量的值将隐藏超类中变量的值。我已经编写了一个程序来检查它,但输出清楚地表明任何隐藏过程都没有发生或者真的发生了?如果子类隐藏超类中的变量,“Aa”和“Ba”的值应该是 25 对吗?请帮帮我。
注意:我是这个 java 编程的新手。请详细解释您的答案。谢谢你
这是代码
输出在这里:
c++ - 在 C++ 中隐藏、重载或覆盖
然后我又有一个问题。像这样的东西:
输出是“Base.”。然后功能规则不起作用,我对此感到困惑,您能帮帮我吗?谢谢。
java - 在子类中隐藏方法
我有一个带有一些实现方法的抽象超类。
是否可以在继承自该超类的子类中隐藏该超类的方法?我不想在某些子类中从超类中看到某些方法。最后但并非最不重要的一点是,是否可以更改子类中与超类中具有相同名称的方法的参数数量?
假设我们public void test(int a, int b)
在超类中有一个方法,但现在我想public void test(int a)
在子类中有一个方法调用超类函数,并且超类中的方法不再可见。