如何在Java中确定对象的类?

时间:2015-06-11 01:23:28

标签: java inheritance

如何用Java确定对象的类?

B类和C类扩展A类。这是D类中的方法实现,称为dmethod(B或C的对象) ,它除了可以是B或C对象的单个参数外。

调用方法可以是

  1. dmethod(B对象)
  2. dmethod(C对象)
  3. 如何为这种情况编写代码?

2 个答案:

答案 0 :(得分:2)

dmethod(对象o)内,

使用:

if(o instanceof B) {
     // ...
}
else if( o instanceof C) {
     // ...
}

查明传入的参数是B对象还是C对象?

更多关于instanceof

答案 1 :(得分:0)

要确定对象的类,请从:

开始
Object.getClass()

然后从那里开始。

一旦您拥有特定对象的实际Class对象,您就可以查询the API以获取其名称等信息。

对于问题的第(2)部分,如果B和C都扩展为A,那么您可以像这样定义dmethod()

dmethod(A a)

然后,该方法可以对B和C共有的任何事物起作用,即。在他们的超类(A)中。如果您需要特定于B或C的内容,您可以将'a'向下转换为B或C(使用instanceof检查以查看'a'的类型)。

你可以根据你的问题定义两个版本的dmethod(),一个接受B,一个接受C.重载支持这个。