第七十一題:

Given:

1. interface A{public void aMethod();}
2. interface B { public void bMethod(); }
3. interface C extends A, B { public void cMethod(); }
4. class D implements B {
5.     public void bMethod(){}
6. }
7. class E extends D implements C {
8.     public void aMethod(){}
9.     public void bMethod(){}
10.     public void cMethod(){}
11. }

What is the result?

A. Compilation fails because of an error in line 3.
B. Compilation fails because of an error in line 7.
C. Compilation fails because of an error in line 9.
D. If you define D e = new E(), then e.bMethod() invokes the version of bMethod() defined in Line 5.
E. If you define D e = (D)(new E()), then e.bMethod() invokes the version of bMethod() defined in Line 5.
F. If you define D e = (D)(new E()), then e.bMethod() invokes the version of bMethod() defined in Line 9.

答案:

題目範圍:物件觀念、interface

解析:

介面被繼承時,父子代方法被呼叫的模式與一般類別一樣,轉換成父代時,依然會使用子代的方法

 

第七十二題:

Given:

1. package geometry;
2. public class Hypotenuse {
3.     public InnerTriangle it = new InnerTriangle();
4.     class InnerTriangle {
5.         public int base;
6.         public int height;
7.     }
8. }

Which statement is true about the class of an object that can reference the variable base?

A. It can be any class.
B. No class has access to base.
C. The class must belong to the geometry package.
D. The class must be a subclass of the class Hypotenuse.

答案:

題目範圍:InnerClass

解析:

innerClass 跟一般class一樣,都可以用修飾詞決定可見度

這裡的innerClass可見度是預設的,因此只有同一個package才可以使用

 

第七十三題:

Given:

10. interface Data { public void load(); }
11. abstract class Info { public abstract void load(); }

Which class correctly uses the Data interface and Info class?

A.
public class Employee extends Info implements Data {
    public void load(){ /* do something */ }
}

B.
public class Employee implements Info extends Data {
    public void load(){ /* do something */ }
}

C.
public class Employee extends Info implements Data
    public void load(){ /* do something */ }
    public void Info.load(){ /* do something */ }
}

D.
public class Employee implements Info extends Data {
    public void Data.load(){ /* do something */ }
    public void load(){ /* do something */ }
}

E.
public class Employee implements Info extends Data {
    public void load(){ /* do something */ }
    public void Info.load(){ /* do something */ }
}

F.
public class Employee extends Info implements Data{
    public void Data.load(){ /* do something */ }
    public void Info.load(){ /* do something */ }
}

答案:

題目範圍:物件觀念、interface、抽象類別

解析:

當同時從一個或多個介面和抽象類別繼承來空的方法時,寫法比照一般方法
沒有Data.load() Info.load() 的寫法

 

第七十四題:

Which two classes correctly implement both the java.lang.Runnable and the java.lang.Cloneable interfaces?
(Choose two.)

A.
public class Session implements Runnable, cloneable {
    public void run();
    public Object clone();
}

B.
public class Session extends Runnable, Cloneable {
    public void run(){/* do something */}
    public Object clone(){/* make a copy */}
}

C.
public class Session implements Runnable, Cloneable {
    public void run(){/* do something */}
    public Object clone() {/* make a copy */}
}

D.
public abstract class Session implements Runnable, Cloneable {
    public void run(){/* do something */}
    public Object clone(){/* make a copy */}
}

E.
public class Session implements Runnable, implements Cloneable {
    public void run(){/* do something */}
    public Object clone() {/* make a copy */}
}

答案:CD

題目範圍:物件觀念、interface、抽象類別

解析:

抽象類別和一般類別都可以可以實作interface

Interface中只能有空方法

抽象類別可以含有空方法,也可以都是寫好的方法

一般類別必須都是寫好的方法

 

第七十五題:

Given:

11. public interface A{ public void m1(); }
13. class B implements A{ }
14. class C implements A{ public void m1(){}}
15. class D implements A{ public void m1(int x){}}
16. abstract class E implements A {}
17. abstract class F implements A { public void m1(){} }
18. abstract class G implements A { public void m1(int x){} }

What is the result?

A. Compilation succeeds.
B. Exactly one class does NOT compile.
C. Exactly two classes do NOT compile.
D. Exactly four classes do NOT compile.
E. Exactly three classes do NOT compile.

答案:

題目範圍:物件觀念、interface、抽象類別

解析:

B類別 錯:一般類別實作了介面卻沒有把方法完成

C類別 對:正確的實作了介面

D類別 錯:引數不同的方法視為不同的方法,因此不算完成了介面的方法

E類別 對:抽象類別不需要完成所有方法

F類別 對:這樣寫雖然有點多餘,但是是被接受的

G類別 對:引數不同的方法視為不同的方法,不過這是抽象類別,不需要完成實作的方法

arrow
arrow

    yaya741228 發表在 痞客邦 留言(0) 人氣()