package test; 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 } public static void main(String[] args){ Car as=new Car(0,"sende",200000,23,32); System.out.println(as.carMoney); /** * * 子類可以繼承父類的變量 * ①子類和父類在同一個包中時,子類可以繼承父類的除private屬性的所有方法和成員變量,當子類與父類不在同一個包中時,子類只能繼承父類的protected和public屬性的成員變量和方法。 * ②子類中定義的成員變量和父類中的成員變量同名時,子類就隱藏了繼承的成員變量;子類中定義一個方法,並且這個方法的名字、返回類型、參數個數和類型與從父類繼承的方法完全相同,子類就隱藏從父類繼承來的方法(方法的重寫)。 * ③在子類中允許有一個方法和父類的方法名字相同而類型不同。 * * 在這個測試類中可以看到,可以直接使用類對象獲取父類中的屬性,即使該屬性是私有屬性,而使用其子類的對象獲取對應屬性,卻無法使用對象名.屬性, * 只能通過公有的get方法獲取屬性,可以看出在子類的構造方法中的該 變量不是子類的,而是父類的,super關鍵字的作用是調用父類的構造方法,且必須 * 放在構造器的首行 * this和super分為調用和引用。只可以引用父類構造器,不可以調用。引用只可以出現在構造器的第一行。 * super引用的是父類的構造方法而不是父類的屬性,如果將父類的構造方法變為私有你就可以發現子類的使用super的構造出錯了。因為super調用的使父類 * 的構造方法,所以在走父類構造器中的this代表的是父類,賦值給的屬性也是父類的,這里子類中繼承的感覺是父類屬性的一個映射,因為它受到父類中的修飾 * 詞的影響,不完全屬於子類 * 不知道正確不正確,我的看法,歡迎指出問題,謝謝 */ Sedan sd=new Sedan(0,"sende",200000,23,32); System.out.println(sd.getCarNumb()); } } 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); } }
