java比较两个不同类的值

时间:2016-11-20 12:02:56

标签: java class compare

让我们说我有动物类,以及从动物类延伸出来的猫狗类。 现在我想看看狗和猫是否有相同的名字。 我试过这个:

if(kitty.getName().equals(doggy.getName()))

但它不会让我这样做,因为我认为猫不是狗?有没有办法可以比较?或者我真的不想做这样的事情,如果是这样,为什么不呢?

2 个答案:

答案 0 :(得分:1)

如果没有示例代码,很难说出你的问题是什么问题,但是让我们采用以下类:

动物类:

public abstract class Animal 
{
    String name;

    public Animal(String name){
        this.name = name;
    }

    public String getName(){
        return name;
    }
}

猫类:

public class Cat extends Animal
{
    public Cat(String name) {
        super(name);
    }   
}

狗班:

public class Dog extends Animal
{
    public Dog(String name) {
        super(name);
    }   
}

这个示例代码:

    Cat cat = new Cat("kitty");
    Dog dog = new Dog("doggy");

    if (cat.getName().equals(dog.getName())){
        System.out.println("true");
    }
    else{ 
        System.out.println("false");
    }

这将产生我认为您正在寻找的行为。这与您的代码结构有何不同?请提供更多信息,以便更容易提供帮助。

答案 1 :(得分:0)

最好提供有关您的计划的更多信息。让我们说出错误消息,getName()方法的返回类型以及如何声明您的dog和cat类以及main中的初始化。对于你所提供的内容,使用" equals()"并没有任何意义。为了比较。当然,假设两种方法的返回类型相同(可能是字符串?)