亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我這樣寫 自動生成的是Animal other = (Animal) obj;轉換成Animal類 而不是轉換為Dog類

package test;


public class Animal {

int age;

String shout;

String name;

String eat;

public void a1(){

System.out.println("這只"+name+"年齡大概是"+age+"它的叫聲是"+shout+"它們主要吃"+eat);

}

public class Dog extends Animal{

String kind;

public void a1() {

System.out.println("這只"+name+"年齡大概是"+age+"它的叫聲是"+shout+"它們主要吃"+eat+"它們總是讓人感覺很"+kind);

}

}

public static void main(String[] args) {

Animal a = new Animal();

Dog p1 = a.new Dog();

Dog p2 = a.new Dog();

if(p1.equals(p2)) {

System.out.println("兩個對象相同;");

}

else {

System.out.println("兩個對象不同;");

}

p1.age= 5;

p1.name= "小狗";

p1.shout= "汪汪汪";

p1.eat = "肉、蔬菜";

p1.kind = "友好";

//p1.a1();

//System.out.println(p1);

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Animal other = (Animal) obj;

if (age != other.age)

return false;

if (eat == null) {

if (other.eat != null)

return false;

} else if (!eat.equals(other.eat))

return false;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

if (shout == null) {

if (other.shout != null)

return false;

} else if (!shout.equals(other.shout))

return false;

return true;

}

}


正在回答

2 回答

Dog p1 = a.new Dog();

Dog p2 = a.new Dog();

這兩句為實例化內部類語句了,Dog是子類并非內部類,所以equals()的自動生成是在Animal類下自動生成的,所以默認為對比Animal類型,若在Dog類下自動生成重寫equals()則會自動生成為Dog類型

0 回復 有任何疑惑可以回復我~
#1

LMH300913 提問者

所以這句話 public class Dog extends Animal 繼承是內部類的繼承 子類必須得重寫一個class文件嗎
2019-08-19 回復 有任何疑惑可以回復我~

主要看你在那個類內重寫equals() ? 在Dog類內重寫就是?Dog other = (Dog?) obj ? 在Animal內重寫就是?Animal other = (Animal) obj ? 看你重寫的對比屬性 是在Animal類重寫 ?如果是在Dog重寫的 對比的屬性只有kind,我測試后是這個結論

不過你這個代碼是怎么寫在一個文件里的 ?我自己寫會提示錯誤 ?復制你的也會提示錯誤

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我這樣寫 自動生成的是Animal other = (Animal) obj;轉換成Animal類 而不是轉換為Dog類

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號