2016-11-20 43 views
-2

比方說,我有一個動物類,以及從動物類延伸出來的貓和狗類。 現在我想看看狗和貓是否有相同的名字。 我已經試過這樣:java比較不同類別的兩個值

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

但它不會讓我這樣做是因爲貓是不是狗我猜?有什麼方法可以比較嗎?或者我真的不想做這樣的事情,如果是的話,爲什麼不呢?

+4

我們需要一個工作示例和錯誤信息,顯然這不是。 – nicomp

+0

你真的鍵入'equels'嗎?或者是這個問題中的一種類型?它應該是「平等」。 –

+0

這是一個錯別字 –

回答

0

您最好提供有關您程序的更多信息。讓我們說錯誤消息,getName()方法的返回類型以及如何聲明你的dog和cat類以及main中的初始化。對於您提供的內容,使用「equals()」進行比較沒有任何意義。當然,假定返回類型爲這兩種方法是相同的(如String也許?)

1

這是相當困難的,告訴你的問題是沒有示例代碼你的問題是什麼,但讓我們採取以下類別:

動物類:

public abstract class Animal 
{ 
    String name; 

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

    public String getName(){ 
     return name; 
    } 
} 

Cat類:

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"); 
    } 

這將產生,我相信你正在尋找的行爲。這與您的代碼的結構有何不同?請提供更多信息,以便於幫助。