promotion image of download ymail app
Promoted
Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 2 decades ago

Abstract Class 與 Interface

何為abstract class? 與interface比較有什麼分別呢?

3 Answers

Rating
  • 2 decades ago
    Favorite Answer

    解釋一下: abstract method : method 不具有method body {....}

    因此討論

    Abstract class:

    (1)abstract class可以有constractor。

    (2)宣告成abstract class 的條件:

    ... a)該class 即使沒有abstract method, 仍可以自己宣告成abstract class

    (語法允許, 但意義不大)

    ... b)該class 內宣告了abstract methods

    ... c)該class extends自super abstract class或implements 某interface 卻未實作其原本的method

    (3)一旦要實作該class內的abstract method時的access modify, 必須是public。

    Interface:

    (1)interface內不可定義任何的constructor

    (2)interface內的method不可有method body({})

    (3)interface可使用的modifiers只有public及abstract。

    ....(所以不可以在 interface內宣告protected、private、static或 final method. )

    所以一個class只能extends一個super abstract class,但可以implements 一個以上的interface.

    並且 interface及abstract class不可被實體化,因尚未定義完整(內含abstract method)。

    • Commenter avatarLogin to reply the answers
  • Anonymous
    2 decades ago

    (3)一旦要實作該class內的abstract method時的access modify, 必須是public。

    這是錯的!

    • Commenter avatarLogin to reply the answers
  • 2 decades ago

    基本上 class 和 inteface 本質就差異蠻大的,即使 abstract class 和 interface 之間還是差很多,所以我真正的焦點在於退化的 abstract class,一個只擁有(自己只定義) abstract method 的 pure abstract class(講 pure 也不太恰當,畢竟還是至少得繼承 java.lang.Object,就會有 concrete method)。一個 interface 可以改寫成 pure abstract class,用起來在多數情況下以 programmer 角度來看是相同的,除了 interface 可以隨時混搭到其他的 type hierarchy 裡,pure abstract class 不行,但是後者的資料承載比較強。

    • Commenter avatarLogin to reply the answers
Still have questions? Get your answers by asking now.