不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...
無論你是新手Java 程序員,還是老手程序員,可能在實際開發中很少自己寫抽象類。
但是抽象類在某些時候的功能很強大,可以保證子類中百分百實現父類中的方法 —— 普通類的弊端,消除子類的冗余代碼 —— 接口的弊端
一、抽象類
1、什么是抽象類?
在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
2、抽象類不能被實例化
抽象類不能被實例化 (初學者很容易犯的錯),如果被實例化,就會報錯,編譯無法通過。只有抽象類的非抽象子類可以創建對象。
3、繼承抽象類
輸出結果:
4、抽象方法
如果你想設計這樣一個類,該類包含一個特別的成員方法,該方法的具體實現由它的子類確定,那么你可以在父類中聲明該方法為抽象方法。
抽象方法:
抽象方法只包含一個方法名,而沒有方法體。
抽象方法沒有定義,方法名后面直接跟一個分號,而不是花括號。
輸出結果:
5、抽象類特點
- 抽象類不能被實例化 (初學者很容易犯的錯),如果被實例化,就會報錯,編譯無法通過。只有抽象類的非抽象子類可以創建對象。
- 抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
- 抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能。
- 構造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。
- 抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。
二、接口(Interface)
以下圍繞Jdk 1.7。JDK 1.8 接口增加了新特性 (允許默認方法、靜態方法、靜態常量)
1、什么接口?
官方解釋:Java 接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
接口是解決 Java 無法使用多繼承的一種手段,但是接口在實際中更多的作用是制定標準的。在 jdk1.8之前,接口里全部是抽象方法和常量。
2、接口寫法
2、接口的特點
接口不能用于實例化對象。接口沒有構造方法。接口中所有的方法必須是抽象方法。接口不能包含成員變量,除了 static 和 final 變量。接口不是被類繼承了,而是要被類實現。接口支持多繼承。輸出結果:
3、接口的繼承
一個接口能繼承另一個接口,這和類之間的繼承比較相似。
4、接口的多繼承
在 Java 中,類的多繼承是不合法,但接口允許多繼承。
在接口的多繼承中 extends 關鍵字只需要使用一次,在其后跟著繼承接口。
public interface Football extends Sports,balls
5、接口的實現
..implements 接口名稱 [, 其他接口名稱,其他接口名稱..., ...] ...
JDK1.7 抽象類和接口的區別
1. 抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是接口中的方法不行。2. 抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是 public static final 類型的。3. 接口中不能含有靜態代碼塊以及靜態方法 (用 static 修飾的方法),而抽象類是可以有靜態代碼塊和靜態方法。4. 一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。總結
以上是生活随笔為你收集整理的不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多囊卵巢综合征可以备孕吗
- 下一篇: 敬往事一杯酒是哪首歌啊?