首頁  >  文章  >  Java  >  抽象類別的作用是什麼?

抽象類別的作用是什麼?

青灯夜游
青灯夜游原創
2020-11-17 15:51:5628922瀏覽

抽象類別是用來捕捉子類別的通用特性的,是被用來建立繼承層級裡子類別的模板。現實中有些父類別中的方法確實沒有必要寫,因為各個子類別中的這個方法肯定會有不同;而寫成抽象類,這樣看程式碼時,就知道這是抽象方法,而知道這個方法是在子類別中實現的,所以有提示作用。

抽象類別的作用是什麼?

一、什麼是抽象類別

在物件導向的概念中,所有的對像都是透過類別來描繪的,但是反過來,並不是所有的類別都是用來描繪對象的,如果一個類別中沒有包含足夠的資訊來描繪一個具體的對象,這樣的類別就是抽象類別。

抽象類別除了無法實例化物件之外,類別的其它功能依然存在,成員變數、成員方法和建構方法的存取方式和普通類別一樣。

由於抽象類別無法實例化對象,所以抽象類別必須被繼承,才能被使用。也是因為這個原因,通常在設計階段決定要不要設計抽象類別。

父類別包含了子類別集合的常見的方法,但是由於父類別本身是抽象的,所以不能使用這些方法。

在Java中抽象類別表示的是一種繼承關係,一個類別只能繼承一個抽象類別,而一個類別卻可以實作多個介面。

二、為什麼要用抽象類別?抽象類別有什麼用?

老是在想為什麼要引用抽象類,一般類別不就夠用了嗎。一般類別裡定義的方法,子類別也可以覆蓋,沒必要定義成抽象的啊。

其實不是說抽象類別有什麼用,一般類別確實也能滿足應用,但是現實中確實有些父類別中的方法確實沒有必要寫,因為各個子類別中的這個方法肯定會有不同,所以沒有必要再在父類別裡寫。當然你也可以把抽象類別都寫成非抽象類,但是這樣沒有必要。

而寫成抽象類,這樣別人看到你的程式碼,或你看到別人的程式碼,你就會注意抽象方法,而知道這個方法是在子類別中實現的,所以,有個提示作用。

三、抽象類別和介面的差異

#抽象類別

抽象類別是用來捕捉子類別的通用特性的。它不能被實例化,只能被用來當作子類別的超類別。抽象類別是被用來創造繼承層級裡子類別的模板。

介面

介面是抽象方法的集合。如果一個類別實作了某個接口,那麼它就繼承了這個接口的抽象方法。這就像契約模式,如果實作了這個接口,那麼就必須確保使用這些方法。介面只是一種形式,介面本身不能做任何事。

抽象類別和介面的比較

抽象類別的作用是什麼?

#什麼時候使用抽象類別和介面

  • #如果你擁有一些方法並且想讓它們中的一些有預設實現,那麼使用抽象類別吧。
  • 如果你想要實作多重繼承,那麼你必須使用介面。由於Java不支援多繼承,子類別不能夠繼承多個類別,但可以實作多個介面。因此你就可以使用介面來解決它。
  • 如果基本功能不斷改變,那麼就需要使用抽象類別。如果不斷改變基本功能並且使用接口,那麼就需要改變所有實作了該接口的類別。
  • 假如有一個接口,五個實現類,現在的需求可能要往接口加一個方法,這樣就要改動五個實現類,但需求只需要改動其中兩個實現類,可以再定義一個抽象類別去實作這個接口,在抽象類別中新增這個方法,然後其他兩個實作類別實作這個抽象類別就好了,或是使用Java 8 中的新特性,在介面中新增預設方法或靜態方法。

更多程式相關知識,請造訪:程式設計學習! !

以上是抽象類別的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn