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

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

子類用super調用父類有參數構造函數,是否會訪問到父類的私有屬性?

public?class?Car{
????private?int?carMoney;????//汽車租金
????private?String?carName;???//汽車名字
????private?int??carNumb;??????//汽車序列號
????private?int?carryNum;????//載貨量
????private?int?passengerNum;//載客人數
????
	public?Car(int?carNumb,String?carName,int??carMoney,int?passengerNum,int?carryNum){
		this.carMoney?=?carMoney;
		this.carName?=?carName;
		this.carNumb?=?carNumb;
		this.carryNum?=?carryNum;
		this.passengerNum?=?passengerNum;
	}
????public?int?getCarMoney()?{
????????return?carMoney;
????}
????public?void?setCarMoney(int?carMoney)?{
????????this.carMoney?=?carMoney;
????}
????public?String?getCarName()?{
????????return?carName;
????}
????public?void?setCarName(String?carName)?{
????????this.carName?=?carName;
????}
????public?int?getCarNumb()?{
????????return?carNumb;
????}
????public?void?setCarNumb(int?carNumb)?{
????????this.carNumb?=?carNumb;
????}
????public?int?getCarryNum()?{
????????return?carryNum;
????}
????public?void?setCarryNum(int?carryNum)?{
????????this.carryNum?=?carryNum;
????}
????public?int?getPassengerNum()?{
????????return?passengerNum;
????}
????public?void?setPassengerNum(int?passengerNum)?{
????????this.passengerNum?=?passengerNum;
????}
?
?
????public?void?showInfo()?{
????//?TODO?Auto-generated?method?stub
????}
?
????}
?
class?Sedan?extends?Car{
	public?Sedan(int?carNumb,String?carName,int??carMoney,int?passengerNum,int?carryNum){
		super(carNumb,carName,carMoney,passengerNum,carryNum);
	}
}

class?Pickup?extends?Car{
	public?Pickup(int?carNumb,String?carName,int??carMoney,int?passengerNum,int?carryNum){
		super(carNumb,carName,carMoney,passengerNum,carryNum);
	}
}

如上所示,不是說私有屬性無法繼承嗎?那么用super調用構造函數時初始化的是什么?子類沒有繼承父類的屬性啊??墒怯靡陨洗a卻可以調用子類的構造方法初始化父類的屬性。怎么回事?

正在回答

3 回答

super調用的這段代碼:

public?Car(int?carNumb,String?carName,int??carMoney,int?passengerNum,int?carryNum){
????????this.carMoney?=?carMoney;
????????this.carName?=?carName;
????????this.carNumb?=?carNumb;
????????this.carryNum?=?carryNum;
????????this.passengerNum?=?passengerNum;
????}

這段代碼中的this,如果你是創建Sedan,那么this就是Sedan,如果是Pickup,那么this 就是Pickup。

雖然父類的字段是private,但你提供了構造方法去訪問。

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

同學,怎樣在這里提問

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

恩,謝謝。這兩天又學習了一下,弄清楚了,發現我其實搞復雜了,搞重復了。其實在子類當中聲明有參構造器,直接在構造器當中用this調用set方法賦值就OK了。

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

舉報

0/150
提交
取消

子類用super調用父類有參數構造函數,是否會訪問到父類的私有屬性?

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

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

幫助反饋 APP下載

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

公眾號

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