了解它指向的继承类

时间:2011-04-13 13:32:17

标签: java inheritance

我有一个基类BASE和几个继承的类BASE_1,BASE_2 ,, BASE_3。我有代码BASE测试但是如何发现它指向的类:BASE_1,BASE_2还是BASE_3?

4 个答案:

答案 0 :(得分:3)

我不清楚您在问什么,但您可以使用getClass()方法和instanceof运算符。

如果是

Base b = new Child1();
b.getClass();//will give you child1

答案 1 :(得分:3)

要查看特定对象的类名,可以使用:

test.getClass().getName();

但是你通常不应该关心,因为任何依赖于你所拥有的子类的功能都应该被实现为那些子类中的重写(“多态”)函数。

答案 2 :(得分:3)

BASE test = getSomeBase();

// method 1
System.out.println(test.getClass().getName());  // prints the classname

// method 2
if (test instanceof BASE_1) {
   // test is a an instance of BASE_1
}

答案 3 :(得分:2)

您可以使用instanceof检查特定类型,或使用.getClass()来获取描述特定类的Class对象:

Base test = getSomeBaseObject();

System.out.println("test is a " + test.getClass().getName());
if (test instanceof Base1) {
  System.out.println("test is a Base1");
}