Given:



abstract class X {

    public abstract void methodX();
}

interface Y {

    public void methodY();
}

Which two code fragments are valid?

A.

class Z extends X implements Y{
    public void methodZ(){}
}
B.
abstract class Z extends X implements Y{
    public void methodZ(){}
}
C.
class Z extends X implements Y{
    public void methodX(){}
}
D.
abstract class Z extends X implements Y{
}
E.
class Z extends X implements Y{
    public void methodY(){}
}

題解

X是抽象類別,Y是介面,要成功建立Z這個類別去繼承X與實作Y。如果Z並不是抽象類別的話,必須實作出X的抽象方法以及Y定義的方法介面,因此選項A、C、E都不行。如果Z是抽象類別,就能允許沒有實作出程式區塊的方法。