2013-07-03 86 views
-2

我是Java初學者,通過閱讀文章,書籍和觀看YouTube視頻來學習。最近我碰到的條款抽象類我真的不知道它們是否是相同的事情。似乎沒有人真的比較過它們。Java中的類和抽象類

我的問題是:它們是否一樣?如果不是,有什麼區別? 謝謝!

+0

我建議你閱讀由布魯斯Eckel爪哇思維。你可以從網上獲得它,我記得它是免費的。 – GokcenG

+0

詢問谷歌。你會有很多答案。 StackOverflow是關於特定的編碼問題,而不是一般的問題。 –

回答

1

A classabstract class在微妙的方面是不同的。

A class可以實例化並用作對象,而abstract class不能實例化。

您使用abstract class來抽象一些常見類的行爲。

也只有abstract class可以有抽象的方法,只有定義,但沒有實現。實現在abstract class的子類中完成。

還有更多的東西,但這是一個很簡單的答案。

0

抽象類可以有抽象方法,但普通類不能有抽象方法。 我們不能爲抽象類創建一個對象。當我們繼承抽象類時,我們應該實現我們繼承的抽象方法。

0

一個類可以用來創建一個對象。抽象類不能用於創建對象。 您必須擴展一個抽象類以使用它的屬性或方法

0

抽象類不能直接實例化,必須被子類化才能使用。請閱讀Documentation瞭解更多信息。

1

在這種情況下使用abstract類的原因是強制繼承基類的所有人都覆蓋抽象doInit方法。如果沒有這個類和方法是抽象的,他們可能會忘記這麼做,編譯器也不會抓住它們。

除了這個實用的目的,抽象類提供了一種強大的方式來將您的設計理念傳達給您的代碼讀者。抽象類告訴讀者,裏面的方法爲一組相關的類提供了一些通用的實現,而不是實現你正在建模的單個概念。很多時候,向讀者傳達您的意圖與編寫正確代碼一樣重要,因爲否則它們可能在維護代碼時破壞某些內容。

在Java中習慣稱爲抽象類Abstract ...;在你的例子中將是AbstractParent。

public abstract class Parent { 
    public void init() { 
     doInit(); 
    } 
    public abstract void doInit(); 
} 

public class Child extends Parent { 
    public void doInit() { 
     // implementation 
    } 
} 
0

抽象類是一個包含抽象方法的類。抽象方法是在沒有實現的情況下聲明的方法。一個好地方,看看是 here