java中抽象類有什么用-創新互聯
這篇文章主要介紹java中抽象類有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
抽象類是用來捕捉子類的通用特性的,是被用來創建繼承層級里子類的模板。現實中有些父類中的方法確實沒有必要寫,因為各個子類中的這個方法肯定會有不同;而寫成抽象類,這樣看代碼時,就知道這是抽象方法,而知道這個方法是在子類中實現的,所以有提示作用。
一、什么是抽象類
在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。
由于抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。也是因為這個原因,通常在設計階段決定要不要設計抽象類。
父類包含了子類集合的常見的方法,但是由于父類本身是抽象的,所以不能使用這些方法。
在Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。
二、為什么要用抽象類?抽象類有什么用?
老是在想為什么要引用抽象類,一般類不就夠用了嗎。一般類里定義的方法,子類也可以覆蓋,沒必要定義成抽象的啊。
其實不是說抽象類有什么用,一般類確實也能滿足應用,但是現實中確實有些父類中的方法確實沒有必要寫,因為各個子類中的這個方法肯定會有不同,所以沒有必要再父類里寫。當然你也可以把抽象類都寫成非抽象類,但是這樣沒有必要。
而寫成抽象類,這樣別人看到你的代碼,或你看到別人的代碼,你就會注意抽象方法,而知道這個方法是在子類中實現的,所以,有個提示作用。
三、抽象類和接口的區別
抽象類
抽象類是用來捕捉子類的通用特性的 。它不能被實例化,只能被用作子類的超類。抽象類是被用來創建繼承層級里子類的模板。
接口
接口是抽象方法的集合。如果一個類實現了某個接口,那么它就繼承了這個接口的抽象方法。這就像契約模式,如果實現了這個接口,那么就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。
抽象類和接口的對比
什么時候使用抽象類和接口
- 如果你擁有一些方法并且想讓它們中的一些有默認實現,那么使用抽象類吧。
- 如果你想實現多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。
- 如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。
- 假如有一個接口,五個實現類,現在的需求可能要往接口加一個方法,這樣就要改動五個實現類,但需求只需要改動其中兩個實現類,可以再定義一個抽象類去實現這個接口,在抽象類中新增這個方法,然后其他兩個實現類實現這個抽象類就好了,或者使用 Java 8 中的新特性,在接口中新增默認方法或者靜態方法。
以上是java中抽象類有什么用的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!
當前文章:java中抽象類有什么用-創新互聯
鏈接分享:http://www.xueling.net.cn/article/pocse.html