子類用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卻可以調用子類的構造方法初始化父類的屬性。怎么回事?
2016-01-09
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,但你提供了構造方法去訪問。
2016-03-10
同學,怎樣在這里提問
2016-01-11
恩,謝謝。這兩天又學習了一下,弄清楚了,發現我其實搞復雜了,搞重復了。其實在子類當中聲明有參構造器,直接在構造器當中用this調用set方法賦值就OK了。