"SCJP 1.6版考題 089" 修訂間的差異
出自 陳富國維基館
(新頁面: 1. public class Car{ 2. private int wheelCount; 3. private String vin; 4. public Car(String vin){ 5. this.vin = vin; 6. this.wheelCount = 4; 7. } 8. pu...) |
(無差異)
|
於 2013年3月30日 (六) 05:59 的最新修訂
1. public class Car{
2. private int wheelCount;
3. private String vin;
4. public Car(String vin){
5. this.vin = vin;
6. this.wheelCount = 4;
7. }
8. public String drive(){
9. return "zoom-zoom";
10. }
11. public String getInfo(){
12. return "VIN: " + vin + "wheels: " + wheelCount;
13. }
14.}
And:
1. public class MeGo extends Car{
2. public MeGo(String vin){
3. this.wheelCount = 3;
4. }
5. }
What two must the programmer do to correct the compilation errors? (Choose two.)
A. insert a call to this() in the Car constructor
B. insert a call to this() in the MeGo constructor
C. insert a call to super() in the MeGo constructor
D. insert a call to super(vin) in the MeGo constructor
E. change the wheelCount variable in Car to protected
F. change line 3 in the MeGo class to super.wheelCount = 3;
解答
Ans: D E
解說:
要可以編譯必須插入super(vin)在MeGo建構子裏 因為若沒有這個呼叫,編譯器會插入一個super()在MeGo建構子裏,而Car又沒有一個有空參數的建構子,這樣會錯! 但插入super(vin)後,這個vin不是自己宣告的變數,是Car的變數,因此要把private的存取屬性換掉(public/default也可以)
| ||||||||||||||||||||