有没有办法从基类实例中找出派生类的名称?
例如:
class A{
....
}
class B extends A{
...
}
class c extends A{
...
}
现在,如果某个方法返回的对象A
,我可以找出它的类型B
还是C
?
使用instanceof
或Class#getClass()
A returned = getA();
if (returned instanceof B) { .. }
else if (returned instanceof C) { .. }
getClass()
要么返回:A.class
,B.class
,C.class
在if子句中,您需要向下转换-即
((B) returned).doSomethingSpecificToB();
也就是说,有时认为使用instanceof
或是getClass()
不好的做法。您应该使用多态性来避免需要检查具体的子类,但是我不能用给出的信息告诉您更多信息。
原关闭原因未解决 显示实例是来自C类还是C的子类。 有没有办法确保实例不是子类?
问题内容: 我正在创建一个类及其子类,需要在其中调用父级的静态方法以返回子级实例。 问题答案: 该静态方法被调用,其值是类对象,子类,你把它称为后的构造。因此,您可以使用实例化它:
下面是我尝试的代码。我也试图制造任何类型的动物,但没有用。 这可以只用一个函数来完成吗?还是我必须为每个动物子类保留两个分离的“服务”函数?
我目前有一个代码片段,其中对于每个类别,它将找到子类别: 将递归获取一个类别的子级: 目前,使用,只检索子类别的子类别,因此如果每个子类别都有自己的子类别,则不会将其保存到子类别中。 我如何显示子子类别给我们的子类别? 我想用我的代码做的是获取一个父级,获取它的子级,然后将这些子级中的每一个视为父级,递归地获取它的子级,但是我的JSON输出并没有反映这一点。只有父对象有子对象-子对象没有子对象(尽
问题内容: 如果我有一个python类为: 然后定义一个子类,例如: 如果基类的init函数接受某些参数,而我将它们作为子类的init函数的参数,则如何将这些参数传递给基类? 我写的代码是: 我要去哪里错了? 问题答案: 你可以用 您的缩进不正确,这是修改后的代码: 这是输出:
我有java中的类:。和类,它扩展了类。 Class保留Class的实例。 我注意到,当我调用类B的构造函数时(当我在类A中初始化这个参数时),它会执行super(),创建一个新的实例A,并初始化所有It字段。 我如何告诉class