抽象类的作用是什么?
一、什么是抽象類
在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。
由于抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。也是因為這個原因,通常在設計階段決定要不要設計抽象類。
父類包含了子類集合的常見的方法,但是由于父類本身是抽象的,所以不能使用這些方法。
在Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。
二、為什么要用抽象類?抽象類有什么用?
老是在想為什么要引用抽象類,一般類不就夠用了嗎。一般類里定義的方法,子類也可以覆蓋,沒必要定義成抽象的啊。
其實不是說抽象類有什么用,一般類確實也能滿足應用,但是現實中確實有些父類中的方法確實沒有必要寫,因為各個子類中的這個方法肯定會有不同,所以沒有必要再父類里寫。當然你也可以把抽象類都寫成非抽象類,但是這樣沒有必要。
而寫成抽象類,這樣別人看到你的代碼,或你看到別人的代碼,你就會注意抽象方法,而知道這個方法是在子類中實現的,所以,有個提示作用。
三、抽象類和接口的區別
抽象類
抽象類是用來捕捉子類的通用特性的 。它不能被實例化,只能被用作子類的超類。抽象類是被用來創建繼承層級里子類的模板。
接口
接口是抽象方法的集合。如果一個類實現了某個接口,那么它就繼承了這個接口的抽象方法。這就像契約模式,如果實現了這個接口,那么就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。
抽象類和接口的對比
什么時候使用抽象類和接口
- 如果你擁有一些方法并且想讓它們中的一些有默認實現,那么使用抽象類吧。
- 如果你想實現多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。
- 如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。
- 假如有一個接口,五個實現類,現在的需求可能要往接口加一個方法,這樣就要改動五個實現類,但需求只需要改動其中兩個實現類,可以再定義一個抽象類去實現這個接口,在抽象類中新增這個方法,然后其他兩個實現類實現這個抽象類就好了,或者使用 Java 8 中的新特性,在接口中新增默認方法或者靜態方法。
更多編程相關知識,請訪問:編程學習!!
以上就是抽象類的作用是什么?的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的抽象类的作用是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle的函数有哪些(Oracle)
- 下一篇: Excel2016如何使用?Excel2