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

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

大神來看看

public?class?Bus?{//汽車類
	int?seat;//座位數(shù)
	float?price;
	public?void?showSeat(){
		this.seat=47;
		System.out.println("Bus的座位數(shù)為:"+seat);
	}
	public?Bus(int?seat){
		System.out.println("父類的構(gòu)造方法");
		this.seat=seat;
	}
}
public?class?car?extends?Bus?{??//子類轎車類
	public?void?showSeat(){?//方法重寫
		this.seat=4;
		System.out.println("子類car的座位數(shù)為"+seat);
		System.out.println("父類的Bus的座位數(shù)為"+super.seat);
	}
	public?car(int?seat){?//帶參構(gòu)造方法
		super(seat);
		System.out.println("子類的構(gòu)造方法");
	}
}
public?class?test?{
	public?static?void?main(String[]?args){
		car?honda=new?car(55);
		honda.showSeat();
	}
}

問下大神 ?為什么輸出是:

子類car的座位數(shù)為4

父類的Bus的座位數(shù)為4

我只是在構(gòu)造方法里面給seat賦了一個(gè)值55吧?

正在回答

3 回答

在car子類中的showseat方法你用this.seat,因?yàn)樽宇惱锩鏇]有重新定義seat變量,所以系統(tǒng)默認(rèn)此時(shí)你調(diào)用的是父類的seat,所以當(dāng)你的程序執(zhí)行到這的時(shí)候你原來給父類seat賦值55在這被覆蓋了,所以結(jié)果是4。如果你把this.seat=4改成int seat=4,在子類里面重新定義一個(gè)和父類一樣的變量,此時(shí)輸出結(jié)果就對了。

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

額.....你給父類的賦值沒有用啊,你調(diào)用的是子類的方法.....他不會調(diào)用父類的方法的。只是在實(shí)例化Car的時(shí)候會先實(shí)例化父類的構(gòu)造方法。


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

你Car的showSeat方法中,你給seat賦了4

在main方法中調(diào)用了car對象的showSeat方法....

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

dapatpat 提問者

我的car的構(gòu)造方法是會給Bus.seat賦值為55的 我剛才在car的showseat方法里面this.seat之前和之后都輸出了一下super.seat 之前輸出的是55 但是之后輸出的就變成了4 不知道為什么這里的this.seat把父類的seat都給改了。。。。。
2015-04-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Java入門第二季 升級版
  • 參與學(xué)習(xí)       531214    人
  • 解答問題       6327    個(gè)

課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙

進(jìn)入課程
微信客服

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

幫助反饋 APP下載

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

公眾號

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