getClass()
返回Class
。所以animal.getClass()
将返回类型动物和比较将返回false
。
因此,这里是你的理解的综合研究:
Animal animal = new Animal();
Bird bird = new Bird();
Animal birdAnimal = new Bird();
if (animal.getClass() == bird.getClass()){
System.out.println("Bird equals to animal");
}else{
System.out.println("Bird not equals to animal");
}
if (birdAnimal.getClass() == animal.getClass()){
System.out.println("BirdAnimal equals to animal");
}else {
System.out.println("BirdAnimal not equals to animal");
}
if (animal.getClass() == Animal.class){
System.out.println("animal equals to Animal");
}else{
System.out.println("animal not equals to Animal");
}
if (animal.getClass() == Bird.class){
System.out.println("animal equals to Bird");
}else{
System.out.println("animal not equals to Bird");
}
这里是输出:
Bird not equals to animal
BirdAnimal not equals to animal
animal equals to Animal
animal not equals to Bird
这意味着'动物'是'鸟'的一个实例,而不是一个子类。 – shmosel
'return animal.getClass()!= Bird.class;'更容易。 –
@shmosel谢谢你的回答,但也许我不能解释它的权利,我给了这部分代码作为例子..在我的代码我有3类动物,鸟和猫动物是超类,其他人是子类,但我只需要知道(一般情况下)当我必须比较两个类别彼此什么是我比较真正的事情,如果我有2个数字,所以我需要知道他们哪个更小..在这里我无法理解比较两个类的想法 –