问题标签 [superclass]
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++ - 当作为参数传递时,为什么不能在子类函数中访问受保护的超类成员?
我收到一个编译错误,对此我有些困惑。这是在VS2003上。
错误 C2248:“A::y”:无法访问在“A”类中声明的受保护成员
问题在于 x = item.y;
访问被指定为受保护。为什么 B 类的构造函数不能访问 A::y?
polymorphism - 是否可以在多态性中使用超类的对象访问子类的变量
如何使用类KeyBoardPlayer
对象访问类的状态变量KalaPlayer
?
c++ - 在初始化列表中使用超类的地址/指针
上下文 1:D 类:公共 B1,公共 B2{};
上下文 2:B2 带 B1 初始化: B2( B1 * ) //B2 的构造函数
我的问题在 D 的初始化列表中:
D::D() : B1(), B2( ? )... 应该是什么?
我不想在 ? 地方,因为在初始化列表中使用“this”是不好的。并且由于 B1 部分已经初始化,使用它是有意义的。
我应该怎么办 ?
java - Java Web 服务/JAXB - 抽象超类
我有一个带有抽象超类的 JAXB 注释类的包。我想在 Web 服务接口中使用这个超类,所以我可以将任何子类作为参数传递。当我这样做时,会引发异常:
可以手动编组/解组并将参数作为字符串传递,但我想避免它。任何想法如何做到这一点?
java - Hibernate:如何将子类链接到其超类?
我在设置我的网上商店项目时遇到了一点问题。问题是,我有一个 User() 超类和两个子类,PrivateUser 和 BusinessUser。
现在,我不太确定如何通过休眠来存储这种关系。
对于这个问题,User() 类只包含一个字段:
字符串地址;
PrivateUser 包含:
字符串 firstName;
并且 BusinessUser 包含:
String CompanyName;
每个字段都有自己的 getter 和 setter。就像现在一样,我只能存储并能够获取 firstName 和 companyName。当我使用 Hibernate 从我的数据库中获取用户时,我会得到一个带有空地址的 PrivateUser/BusinessUser。
底线是,有人可以向我指出一个有用的教程,或者更好地展示一个类似的示例代码吗?
谢谢!
java - 使用子类对象修改其超类对象中的受保护属性
对不起,我没有为我的 Java 问题想出一个更好的版本。我现在正在使用 Java 版本:1.6.0_18 和 Netbeans 版本:6.8
现在来回答这个问题。
我所做的是创建了一个只有一个受保护的 int 属性的类,然后我创建了一个公共方法来将 int 属性设置为给定值。然后我创建了该类的一个对象,并使用所述公共方法将 int 属性设置为 5。现在我需要您的帮助来创建另一个类,该类将采用所述对象并公开它的受保护 int 属性。
我能想到的方法是创建一个子类来继承该类,然后创建一个方法来获取超类的 int 属性。我有点成功地创建了获取 int 属性的代码,但现在我不知道如何使用这个新的子类来引用超类的对象。
到目前为止,这是我上过的两门课:
我创建了一个“A”对象并使用它的方法将其属性设置为 5,如下所示:
现在我想创建一个'B'的对象来输出存储在'objA'的属性中的int。我试图运行这段代码:
但我得到了错误:第一行的“java.lang.ClassCastException”
p>请问有没有做我想做的事情?
PS我希望使这个想法可行,因为我不想通过给它一个getter方法来编辑A类(除非我别无选择)。
PPS 另外,我知道公开属性而不是将其设为私有并使用公共 setter / getter 方法是一个“坏”主意,但我喜欢这种方式:)。
编辑:添加代码标签
java - Java:超类在某些条件下构造子类,可能吗?
我有这个条件
当我创建 B 的实例时,该操作将只执行 B 中的操作,因为它会覆盖超类的操作。
问题是在我的项目中,超类 A 已经被使用了太多次,我正在寻找一种方法,在某些条件下,当我创建 A 的实例时,它会进行检查,如果是真的,替换自己与 B。
这在某种程度上可能吗?
java - 反射:将对象强制转换为子类而不使用 instanceof
我有这个简单的接口/类:
还有一个实用程序类:
现在,主要课程:
输出是
我会p.handler(m)
调用该方法p.handler(m:Message1)
我不想使用“手动”命令instanceof
,因为我有很多情况:
如果我打电话m.getClass()
,我会获得“mypackage.Message1”,所以是子类而不是超类。
我尝试使用此代码(使用反射):
但输出是
所以,这是我的问题。我会在不使用“代码命令”istanceof 的情况下将超类对象运行时转换为子类对象。
我会这样的正确命令:
我怎样才能获得它?这是可能的?
java - 在这种情况下可以使用继承吗?(爪哇)
我有 ClassA 和 ClassB,其中 ClassA 是超类。
ClassA 使用 NodeA,ClassB 使用 NodeB。
第一个问题:方法参数。ClassB 需要 NodeB 类型,但我不能从子类转换为超类。这意味着我无法设置 NodeB 独有的属性。
第二个问题:当我需要向ClassB添加节点时,我必须实例化一个新的NodeB。但是,我不能在超类中这样做,所以我必须重写插入以使用 NodeB。
有没有办法解决它,还是我必须重写整个事情?
subclass - 使用 Automapper 展平属性的子类
给定课程:
我想使用 Automapper 来映射 Source -> Dest。
这个测试显然失败了:
考虑到“Person”实际上是整个域模型中大量使用的数据类型,最好的映射方法是什么。
编辑:目的是保留“Dest”对象,这些对象将为“Person”子类型的所有属性定义字段。因此,我们可以有如下的源对象,并且不希望必须为“Person”子类的每个可能组合创建 Dest 对象: