[TOC]
類:一堆具有共同成員變量/屬性和方法/功能對象的集合
## **接口**
### **接口的概念:**
* 接口是功能的集合.就是方法的集合 也就是說,接口中只能定義方法,不能定義普通的成員變量
* 接口中的成員方法,必須都是抽象的
* 接口是比抽象類還要抽象的一種類型
問題: 接口能創建對象嗎? 不能
接口有什么用? 天生作為'父接口'
### **接口的定義**
* 定義接口關鍵字:class
* 定義抽象類關鍵字 abstract class
* 定義接口關鍵字 interface
* 定義枚舉關鍵字 enum
### **格式**
```
public interface 接口名字{
//成員變量,不能定義普通的成員變量
//成員方法,必須是抽象的
public abstarct 返回值類型 方法名();
//類和接口的本質區別并不大,他們的源碼都是.Java文件
//編譯后都是.class 文件
}
```
各種類型之間的關系:
* a,類與類之間:繼承,而且是單繼承,一個子類只能有一個父類
* b,接口與接口之間,繼承,但是可以多繼承,一個子接口可以有多個直接父接口
* c,類和接口之間 不叫繼承,叫實現 只有類實現接口
**Java題:Java到底支不支持多繼承**
```
如果是類與類,不支持多繼承,只支持多層繼承
如果是接口與接口 支持多繼承 也支持多層繼承
```
實現:implements和繼承差不多,實現把接口中的抽象方法都拿過來
## **接口中成員的特點:**
1.接口中可定義變量 但是修飾符必須是,public static final 數據類型 變量 = 值
固定修飾符可以省略,編譯器自動添加
2.接口中科院定義方法.抽象方法
3,接口不可以創建對象(抽象類也是)
4,實現類必須覆蓋接口中所有抽象方法后,然后才能創建對象,否則這個實現類還是一個抽象類,是不能創建對象的
### **在開發中最常用的模式**
一個類繼承一個抽象類,同時實現多個接口:
```
public class A extends Abstract implements 接口A,接口B{
}
```
### **接口特點:**
* 接口可繼承接口 如同類的繼承
* Java支持一個類實現多個接口
* 類繼承一個抽象類,同時實現多個接口
* 接口與父類的功能可以重復,均代表某種功能,并不沖突