Given:
1 2 3 4 5 6 7 8 9 10 11 12 | public abstract class Shape { private int x; private int y; public abstract void draw(); public void setAnchor(int x, int y) { this.x = x; this.x = y; } } |
Which two classes use the shape class correctly?
A.
1 2 3 | public class Circle implements Shape{ private int radius; } |
B.
1 2 3 | public abstract class Circle extends Shape{ private int radius; } |
C.
1 2 3 4 | public class Circle extends Shape{ private int radius; public void draw(); } |
D.
1 2 3 4 | public abstract class Circle implements Shape{ private int radius; public void draw(); } |
E.
1 2 3 4 | public class Circle extends Shape{ private int radius; public void draw() { /* code here */ } } |
F.
1 2 3 4 | public abstract class Circle implements Shape{ private int radius; public void draw() { /* code here */ } } |
題解
這題是在考抽象類別(abstract class)的用法。
抽象類別內允許沒有實作的抽象方法。由於抽象類別也是類別,因此無法使用實作介面(interface)的「implements」關鍵字來實作,所以選項A、D、F都是錯誤的。另外,抽象類別的抽象方法必須被繼承該抽象類別的非抽象類別來實作,因此選項C也是錯誤的。
留言