接口是什么?
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
我的理解就是把接口看作一种特殊的类,这个特殊的类里放的都是公共的抽象的方法和全局变量,接口是为了解决java没有多继承的一种方法。
接口的特点
- 接口中的方法和属性默认为抽象的。(有声明,没有方法体)
- 接口相当于类的声明,说明了这个类可以做什么
- 如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。(必须记住:抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类)
- 接口不能被实例化,因为接口没有构造器(这里注意,抽象类有构造器)
为什么一定要使用接口
- java不支持多继承,所以java可以通过实现接口来弥补这个缺陷
- 接口也被用来实现解耦。
- 接口被用来实现抽象,而抽象类也被用来实现抽象,为什么一定要用接口呢?接口和抽象类之间又有什么区别呢?原因是抽象类内部可能包含非final的变量,但是在接口中存在的变量一定是final,public,static的。
接口的定义
为了声明一个接口,我们使用interface这个关键字,在接口中的所有方法都必须只声明方法标识,而不要去声明具体的方法体,因为具体的方法体的实现是由继承该接口的类来去实现的,因此,接口并不用管具体的实现。接口中的属性默认为Public Static Final.一个类实现这个接口必须实现这个接口中定义的所有的抽象方法。
public interface demo1 {
final int a=1;
void display();
}
继承接口并实现接口里的方法
public class demo implements demo1{
public void display()
{
System.out.println("hello world");
}
public static void main(String args[])
{
demo a = new demo();
a.display();
}
}