小狼
Lv 7
小狼 發問時間: 電腦與網際網路程式設計 · 1 0 年前

Java匿名內部類別的觀念?

Which of the following is a true statement?

a. An anonymous class can extend only the Object class.

b. An anonymous class can not implement an interface.

c. An anonymous class declaration can not have an implements clause.

d. An anonymous class declaration can name more than one interface in the implements clause.

e. The class instance creation expression for an anonymous class must never include arguments.

f. None of the above.

我知道a、b是錯的,而c、d、e看不太懂,麻煩解釋一下了,謝謝

1 個解答

評分
  • 1 0 年前
    最佳解答

    a. An anonymous class can extend only the Object class.

    匿名類別只能繼承 Object 類別。(錯)

    匿名類別可以使用任何非 final 的類別,也就是說可以繼承任何非 final 的類別。

    例如:

    System.out.println(new ArrayList() {

    }.toString());

    這個匿名類別使用(繼承) ArrayList,也同時繼承其父類別 AbstractList。

    b. An anonymous class can not implement an interface.

    匿名類別不能繼承任何 interface。(錯)

    同選項 a,匿名類別可以使用任何的 interface。

    例如:

    System.out.println(new Comparable() {

    public int compareTo(Object o) {

    return 0;

    }

    }.toString());

    這個匿名類別即繼承 Comparable。

    c. An anonymous class declaration can not have an implements clause.

    匿名類別的宣告中不能使用 implements 語法。(對)

    例如:

    System.out.println(new Object() implements Comparable {

    public int compareTo(Object o) {

    return 0;

    }

    }.toString());

    implements 這個語法是不能使用在匿名類別的宣告中。

    d. An anonymous class declaration can name more than one interface in the implements clause.

    匿名類別的宣告中可以在 implements 語法中繼承一個以上的 interface。(錯)

    同選項 c,匿名類別的宣告中不能使用 implements 語法。

    e. The class instance creation expression for an anonymous class must never include arguments.

    匿名類別的物件建立表示式中不可加入參數。(錯)

    在建立匿名類別的物件時,若該類別有定義含參數的建構子時,是可以使用的。

    例如:

    System.out.println(new ArrayList(30) {

    }.toString());

    匿名類別可以使用 ArrayList(int) 這個建構子。

還有問題?馬上發問,尋求解答。