第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么我這樣寫 自動(dòng)生成的是Animal other = (Animal) obj;轉(zhuǎn)換成Animal類 而不是轉(zhuǎn)換為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("兩個(gè)對(duì)象相同;");

}

else {

System.out.println("兩個(gè)對(duì)象不同;");

}

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();

這兩句為實(shí)例化內(nèi)部類語句了,Dog是子類并非內(nèi)部類,所以equals()的自動(dòng)生成是在Animal類下自動(dòng)生成的,所以默認(rèn)為對(duì)比Animal類型,若在Dog類下自動(dòng)生成重寫equals()則會(huì)自動(dòng)生成為Dog類型

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

LMH300913 提問者

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

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

不過你這個(gè)代碼是怎么寫在一個(gè)文件里的 ?我自己寫會(huì)提示錯(cuò)誤 ?復(fù)制你的也會(huì)提示錯(cuò)誤

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

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

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)