让我们说我有动物类,以及从动物类延伸出来的猫狗类。 现在我想看看狗和猫是否有相同的名字。 我试过这个:
if(kitty.getName().equals(doggy.getName()))
但它不会让我这样做,因为我认为猫不是狗?有没有办法可以比较?或者我真的不想做这样的事情,如果是这样,为什么不呢?
答案 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()"并没有任何意义。为了比较。当然,假设两种方法的返回类型相同(可能是字符串?)