[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支持一个类实现多个接口
* 类继承一个抽象类,同时实现多个接口
* 接口与父类的功能可以重复,均代表某种功能,并不冲突