मेरे पास एक प्रोग्राम है जो चिड़ियाघर है और चिड़ियाघर में जानवरों के ब्रांच किए गए उपसमूह हैं जो सरीसृप हैं। जब मैं एक समान विधि करता हूं तो मुख्य प्रोग्राम संकलित करता है और यह चलता है। मैं उलझन में हूं कि जब जावा वस्तुओं की तुलना कर रहा है और विशेष रूप से int या स्ट्रिंग नहीं है तो जावा कैसे बराबर विधि का उपयोग करने के बारे में जानता है?बराबर विधि वस्तुओं के साथ काम करता है? यदि हां, तो कैसे?
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 में सुझाव दिया पहले और सही ;-) स्थान बनाने के लिए की जरूरत है। –
पीएस। एक अच्छी ओवरराइडिंग विधि भी एनोटेटेड की जानी चाहिए .-)। –
@LuiggiMendoza upvote बहुत तेज़ और सही होने के लिए –