Tôi có một chương trình là sở thú và trong sở thú có các phân nhóm con của các loài động vật là loài bò sát. Khi tôi làm một phương thức equals, chương trình chính biên dịch và nó chạy. Tôi đang nhầm lẫn như thế nào java biết để sử dụng phương pháp equals nếu tôi so sánh các đối tượng và không cụ thể int hoặc String?Phương thức equals có hoạt động với các đối tượng không? Nếu vậy, làm thế nào?
public class Zoo {
public static void main(String[]args) {
Animal a=new Animal("Bob");
Reptile komodo= new Reptile("Snakey");
komodo.bask();
a.size=3;
komodo.size=5;
System.out.println(a);
System.out.println(komodo);
Turtle t= new Turtle("Slowy");
t.hide();
t.size=6;
t.numlegs=4;
System.out.println(t);
System.out.println(t.equals(komodo));
}
}
public class Animal {
public String name;
public boolean equals(Animal other) {
return other.size==this.size;
}
public Animal(String s) {
name=s;
}
public void setName(String n) {
this.name=n;
}
public void eat(String meal) {
System.out.println("chump chump yummy "+meal);
}
public int size;
public String toString() {
return "I am "+name+" and I'm "+size+" cm long";
}
}
public class Reptile extends Animal {
public Reptile(String n) {
super(n);
numlegs=0;
}
public Reptile(String n, int l) {
super(n);
numlegs=l;
}
public void bask() {
System.out.println("basking...");
}
public String toString() {
return super.toString()+numlegs+" legs";
}
public int numlegs;
}
public class Turtle extends Reptile {
public Turtle(String n) {
super (n,4);
shellColor="Brown";
}
public void hide() {
System.out.println("you cant see me");
}
public String toString() {
return super.toString()+" and my shell is"+ shellColor;
}
public String shellColor;
public void bask() {
super.bask();
System.out.println("turtle is basking...");
}
}
+1 Để là người đầu tiên và chính xác ;-). –
PS. Một phương pháp ghi đè tốt cũng nên được chú thích. ;-). –
@LuiggiMendoza upvote vì rất nhanh chóng và chính xác –